pub type AgentFn = Box<dyn FnOnce(Value) -> Result<Value, Value> + Send>;
A Clojure agent action: takes the current state, returns the new state.
pub struct AgentFn(/* private fields */);