Adapton engine.
public func init(evalClosure : E.EvalClosure<Val, Error, Closure>)
public func takeLog() : Log<Name, Val, Error, Closure>
take the log events (always empty when log is off)
public func nest<X>(name : Name, body : () -> X) : X
public func put(name : Name, val : Val) : R.Result<Name, G.PutError>
public func putThunk(name : Name, cl : Closure) : R.Result<Name, G.PutError>
public func get(name : Name) : R.Result<{#ok : Val; #err : Error}, G.GetError>