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

}


import Box
import Either
import Prelude

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

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