1
2
3
4
pub trait State {
    type Action;
    fn reduce(&mut self, action: Self::Action);
}