   }
 }
 
+func test_ThickMetatypePrintingImpl<T>(
+  thickMetatype: T.Type,
+  _ expectedPrint: String,
+  _ expectedDebug: String
+  ) {
+    expectPrinted(expectedPrint, thickMetatype)
+    expectPrinted("[\(expectedDebug)]", [ thickMetatype ])
+    expectDebugPrinted(expectedDebug, thickMetatype)
+    expectDebugPrinted("[\(expectedDebug)]", [ thickMetatype ])
+}
+
 PrintTests.test("StructPrintable") {
   let s0 = StructPrintable(1)
   let s1: ProtocolUnrelatedToPrinting = StructPrintable(1)

  expectPrinted("►1◀︎", s1)
  expectPrinted("►1◀︎", s2)
  expectPrinted("►1◀︎", s3)
}

PrintTests.test("LargeStructPrintable") {

  expectPrinted("►1◀︎", c1)
  expectPrinted("►1◀︎", c2)
  expectPrinted("►1◀︎", c3)
  
  let classMetatype = ClassPrintable.self
  expectPrinted("ClassPrintable", classMetatype)
  expectDebugPrinted("a.ClassPrintable", classMetatype)
  expectPrinted("[a.ClassPrintable]", [ classMetatype ])
  expectDebugPrinted("[a.ClassPrintable]", [ classMetatype ])
  test_ThickMetatypePrintingImpl(classMetatype, "ClassPrintable",
    "a.ClassPrintable")
}

PrintTests.test("ClassVeryPrintable") {
