 		return expression.analysis(ifBoolean: Optional.Some, otherwise: const(nil))
 	}
 
-	private var _expression: Box<Checkable<Term>>
+	private var _expression: Memo<Checkable<Term>>
 	public var expression: Checkable<Term> {
 		return _expression.value
 	}

}


import Box
import Either
import Prelude


public struct Term: BooleanLiteralConvertible, CustomDebugStringConvertible, FixpointType, Hashable, IntegerLiteralConvertible, CustomStringConvertible {
	public init(_ expression: Checkable<Term>) {
		self._expression = Memo(evaluated: expression)
	}


