TypeCon extends ConcreteType { @Override public String prettyPrint(int fixity) { return this.name; } TypeCon(String name); String getName(); @Override String prettyPrint(int fixity); @Override TypeCon getFresh(TypeScope scope); @Override Type getConcrete(); @Override boolean containsOccurenceOf(TypeVar tvar); @Override boolean equals(Object other); @Override int hashCode(); @Override String toString();  }
@Test public final void testToHaskellType() { final Type integer = Type.con("Integer"); final Type integerWithArg = Type.con("Integer", integer); assertEquals("Integer", integer.prettyPrint()); assertEquals("Integer Integer", integerWithArg.prettyPrint()); }
@Test public final void toHaskellListTest() { final Type ilist = Type.listOf(Type.con("Integer")); assertEquals("[Integer]", ilist.prettyPrint()); }
@Test public final void toHaskellTupleTest() { final Type integer = Type.con("Integer"); final Type tuple = Type.tupleOf(integer, integer); assertEquals("(Integer, Integer)", tuple.prettyPrint()); }