> a transducer is recognizing that the signature of foldl splits
> type Transducer a b = forall r. (r -> b -> r) -> (r -> a -> r)
> they compose like lenses