|
|
|
|
|
by neutronicus
4838 days ago
|
|
'<*>', '>>=', '=<<', '>>>' off the top of my head. The first has something to do with Functors, the second two something to do with Monads, and the last something to do with Arrows, and I have no idea what their precedence is. The first three all more or less solve the problem of "use a function I'd normally use on values of type `a` on values of type `m a`, where `m` is a Monad or a Functor. The reasons this stuff makes code hard to read (for me) are: 1. They're all infix and I don't know the precedence. 2. It's not restricted to standard-library code. Oftentimes, learning a new Haskell library involves figuring out which part of the infix line-noise namespace it's staked out for itself. |
|
Granted, Haskell people seem to have a sometimes unhealthy attraction towards having operators for everything. The Lens package in particular is rather awful in this regard IMO. (Fortunately there are non-operator equivalents to everything)