 	}
 
 	func testDatatypeDeclarationsAddDataConstructorsToEnvironment() {
-		assert(Expression<Term>.boolean.environment["true"], ==, .Product(true, .Unit))
-		assert(Expression<Term>.boolean.environment["false"], ==, .Product(false, .Unit))
+		assert(Expression<Term>.boolean.environment["true"], ==, .Annotation(.Product(true, .Unit), "Boolean"))
+		assert(Expression<Term>.boolean.environment["false"], ==, .Annotation(.Product(false, .Unit), "Boolean"))
 	}
 
 	func testDatatypeConstructorsProduceRightNestedValues() {
-		assert(selfModule.environment["me"], ==, .Product(true, .Unit))
-		assert(selfModule.environment["myself"], ==, .Product(false, .Product(true, .Unit)))
-		assert(selfModule.environment["I"], ==, .Product(false, .Product(false, .Unit)))
+		assert(selfModule.environment["me"], ==, .Annotation(.Product(true, .Unit), "Self"))
+		assert(selfModule.environment["myself"], ==, .Annotation(.Product(false, .Product(true, .Unit)), "Self"))
+		assert(selfModule.environment["I"], ==, .Annotation(.Product(false, .Product(false, .Unit)), "Self"))
 	}
 
 	func testDatatypeConstructorWithArgumentsHasFunctionType() {

	}

	func testDatatypeConstructorsWithMultipleArgumentsProduceFunctionsReturningRightNestedValues() {
		assert(multipleConstructorsWithMultipleArgumentsModule.environment["a"], ==, .lambda(.BooleanType, .BooleanType, { .Product(true, .Product($0, .Product($1, .Unit))) }))
		assert(multipleConstructorsWithMultipleArgumentsModule.environment["b"], ==, .lambda(.BooleanType, .BooleanType, { .Product(false, .Product(true, .Product($0, .Product($1, .Unit)))) }))
		assert(multipleConstructorsWithMultipleArgumentsModule.environment["c"], ==, .lambda(.BooleanType, .BooleanType, { .Product(false, .Product(false, .Product($0, .Product($1, .Unit)))) }))
	}
}


	}

	func testDatatypeConstructorWithArgumentsProducesFunction() {
		assert(oneConstructorWithArgumentModule.environment["a"], ==, .lambda(.BooleanType, { .Annotation(.Product($0, .Unit), "A") }))
	}

	func testDatatypeConstructorsWithArgumentsHaveFunctionTypes() {
