 
 	// MARK: Cases
 
+	case UnitType
 	case UnitTerm
 	case Type(Int)
 	case Pi(Box<Value>, Value -> Value)


	public var debugDescription: String {
		return analysis(
			ifUnitTerm: const("Unit"),
			ifType: { "Type\($0)" },
			ifPi: { "(Π ? : \(toDebugString($0)) . \(toDebugString($1)))" },
			ifSigma: { "(Σ ? : \(toDebugString($0)) . \(toDebugString($1)))" },


	public func analysis<T>(
		@noescape #ifUnitTerm: () -> T,
		@noescape ifUnitType: () -> T,
		@noescape ifType: Int -> T,
		@noescape ifPi: (Value, Value -> Value) -> T,
		@noescape ifSigma: (Value, Value -> Value) -> T,
