 
 
 import Either
-import Memo
 import Prelude

		return expression.analysis(ifBoolean: Optional.Some, otherwise: const(nil))
	}

	private var _expression: Memo<Expression<Term>>
	public var expression: Expression<Term> {
		return _expression.value
	}




public struct Term: BooleanLiteralConvertible, CustomDebugStringConvertible, FixpointType, Hashable, IntegerLiteralConvertible, CustomStringConvertible {
	public init(_ expression: Expression<Term>) {
		self.init { expression }
	}

	public init(_ expression: () -> Expression<Term>) {
		_expression = expression
	}

