 		case .End:
 			return Expression.UnitType
 		case let .Pure(a):
-			return a
+			return a()
 		case let .Recursive(rest):
 			return rest.out
 		case let .Argument(x, continuation):

	// MARK: Cases

	case End
	indirect case Pure(Expression<Description>)
	indirect case Recursive(Description)
	indirect case Argument(Description, Description -> Description)
}

	// MARK: TermType

	public init(_ expression: () -> Expression<Description>) {
		self = .Pure(expression)
	}

	public var out: Expression<Description> {
