 	case Boolean(Bool)
 	case If(Recur, Recur, Recur)
 	case Annotation(Recur, Recur)
+	case Axiom(Any, Recur)
 }
 
 extension Expression where Recur: FixpointType {

			ifBooleanType: const(.BooleanType),
			ifBoolean: { .Boolean($0) },
			ifIf: { .If(transform($0), transform($1), transform($2)) },
			ifAnnotation: { .Annotation(transform($0), transform($1)) })
	}



		@noescape ifBooleanType: () -> T,
		@noescape ifBoolean: Bool -> T,
		@noescape ifIf: (Recur, Recur, Recur) -> T,
		@noescape ifAnnotation: (Recur, Recur) -> T,
		@noescape ifAxiom: (Any, Recur) -> T) -> T {
		switch self {
		case .Unit:
			return ifUnit()
