diff --git a/src/main/java/de/tla2b/output/TlaTypePrinter.java b/src/main/java/de/tla2b/output/TlaTypePrinter.java
index c6a5dde512ca8c23712e8b70ca4bdc95cffdb366..d3e4f41b6d434147786001173d3d5cb7c4ac1b3b 100644
--- a/src/main/java/de/tla2b/output/TlaTypePrinter.java
+++ b/src/main/java/de/tla2b/output/TlaTypePrinter.java
@@ -108,9 +108,11 @@ public class TlaTypePrinter implements PositionPrinter, TypeVisitorInterface {
 	}
 
 	public void casePairType(PairType type) {
-		pout.openTerm("couple", true);
+		pout.openTerm("tuple");
+		pout.openList();
 		type.getFirst().apply(this);
 		type.getSecond().apply(this);
+		pout.closeList();
 		pout.closeTerm();
 	}
 
@@ -129,11 +131,18 @@ public class TlaTypePrinter implements PositionPrinter, TypeVisitorInterface {
 	}
 
 	public void caseStructType(StructType type) {
-		pout.openTerm("struct");
+		pout.openTerm("record");
 		pout.openList();
 		ArrayList<String> fields = type.getFields();
 		for (String field : fields) {
+			if (type.isExtensible()) {
+				pout.openTerm("opt");
+			} else {
+				pout.openTerm("field");
+			}
+			pout.printAtom(field);
 			type.getType(field).apply(this);
+			pout.closeTerm();
 		}
 		pout.closeList();
 		pout.closeTerm();