4 ms·
I prefer (=<<) and (<<) to make it look more like normal function application. I'm quite prepared to be in the minority on this. `Endo a` wraps `a -> a` so it
by mooism2 15y ago
I prefer (=<<) and (<<) to make it look more like normal function application. I'm quite prepared to be in the minority on this.
`Endo a` wraps `a -> a` so it can have a Monoid instance. Maybe I really want `endo :: [a -> a] -> (a -> a)`, by analogy with sum/Sum, all/All, etc.
`Kleisli m b c` wraps `b -> m c` so `Kleisli m` can have an Arrow instance (given Monad m).