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

        return type
    }
  }
  
  public var messageTemplate: String {
    switch self {

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