pub fn get() -> Eval(a, b, a)
Get the current context.
pub fn set(ctx: a) -> Eval(Nil, b, a)
Replace the current context with a new fixed value.
pub fn update(f: fn(a) -> a) -> Eval(Nil, b, a)
Update the current context by applying a function to it.