 	// MARK: TermType
 
 	public init(_ expression: () -> Expression<Description>) {
-		self = .Pure(expression())
+		self = .Pure(expression)
 	}
 
 	public var out: Expression<Description> {

		case .End:
			return Expression.UnitType
		case let .Pure(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)
}
