pub trait StatefulExt: Stateful { fn agency(&self) -> String; fn catalyst<S, T>(&mut self, f: &dyn Fn(S) -> T) -> Vec<T>; fn tags(&self) -> Vec<String>; }