Move concatMap from GHC.List to GHC.Base so it can be used for the
Applicative and Monad instances for . Define some Applicative members
directly instead of defining them via Monad ones. Use GND and coercions
to speed up some instances
This reduces allocation in cryptarithm2 by 53%. Its only validation failure is a "stat too good" one. I don't currently have things set up to be able to see how to adjust the expected performance.
I generally like the changes, I just don't like this being such a huge patch, mixing up concerns which deserve separate patches & associated reviews.
this seems unrelated to the advertised Applicative/Monad improvements
also an unrelated change?
This is formally an API extension and ought to be a separate commit, with its own separate Trac ticket documenting the library submission process (which was positive, but we should follow the protocol nevertheless, as we're recently being accused of being sloppy in that regard)
what does this INLINE effect again?