pub trait Typed<Context, Type, S> { // Required method fn reduce(self, context: Context) -> (Type, S); }