On 2017-05-03 20:35, Dmitry Olshansky wrote: > So I don't know an answer... Really, why we have this constraint? The > same question is about Functor. Functor is easy: instance Traversable f => Functor f where fmap = (runIdentity .) . traverse . (pure .)