         return type
     }
   }
+
+  public var shortTypeDescription: String {
+    switch self {
+      case .lexical(_):
+        return "lexical"
+      case .syntax(_):
+        return "syntax"
+      case .type(_, _):
+        return "type"
+      case .range(_, _, _, _):
+        return "range"
+      case .argumentCount(_, _, _):
+        return "arg"
+      case .eval(_):
+        return "eval"
+      case .os(_):
+        return "os"
+      case .abortion:
+        return "abort"
+      case .custom(_, _):
+        return "custom"
+    }
+  }
   
   public var messageTemplate: String {
     switch self {

  }
  
  public func printableDescription(context: Context,
                                   typeOpen: String = "[",
                                   typeClose: String = "] ",
                                   irritantHeader: String? = "\nirritants: ",
                                   irritantSeparator: String = ", ",
                                   positionHeader: String? = "at: ",
                                   libraryHeader: String? = "library: ",
                                   stackTraceHeader: String? = "stack trace: ",
                                   stackTraceSeparator: String = ", ") -> String {
    var usedIrritants = Set<Int>()
    let message = self.replacePlaceholders(in: self.descriptor.messageTemplate,
                                           with: self.irritants,
                                           recordingUsage: &usedIrritants)
    var builder = StringBuilder(
          prefix: "\(typeOpen)\(self.descriptor.typeDescription)\(typeClose)\(message)",
          postfix: "",
          separator: "\n",
          initial: "")
    if let irritantHeader = irritantHeader {
      var irritantBuilder = StringBuilder(prefix: "",
                                          postfix: "",

      builder = StringBuilder(prefix: builder.description,
                              postfix: "",
                              separator: stackTraceSeparator,
                              initial: stackTraceHeader)
      for proc in stackTrace {
        builder.append(proc.name)
      }
