 
 /// Deferred, memoized evaluation.
 public struct Memo<T> {
-
-	// MARK: Constructors
+	// MARK: Lifecycle
 
 	public init(_ unevaluated: @autoclosure () -> T) {
 		state = MutableBox(.Unevaluated(unevaluated))

}


/// Private state for memoization.
private enum MemoState<T> {
	case Evaluated(Box<T>)

	}


	// MARK: API

	func map<U>(f: T -> U) -> Memo<U> {
		return Memo<U>(f(value))
	}


	// MARK: Private

	private init(state: MemoState<T>) {
		self.init(state: MutableBox(state))
