foldable flexible bridges (putting foldable+traversable in prelude) Re: Burning bridges
Henning Thielemann
lemming at henning-thielemann.de
Tue May 21 22:44:35 CEST 2013
On Tue, 21 May 2013, Casey McCann wrote:
> Being a beginner is by definition an ephemeral state; the entire
> purpose of being a beginner is to eventually stop being one. Don't
> design a language (or anything else) around the needs of beginners
> unless you intend that only beginners will use it, in which case one
> wonders why they're even bothering.
The other way round does not work, too. If you are trying to put the most
general (thus most "useful" function) to Prelude, you will find that there
will always be more general generalizations. Today you say
mapM_ :: (a -> m b) -> [a] -> m ()
should be replaced by more general
mapM_ :: (a -> m b) -> f a -> m ()
But this is not the most general form. We have discussed several times
about generalizing the (), without a conclusion. But maybe some day there
might be consensus to generalize the () away ... what will be the next
generalization? We may generalize the (->) away. What else?
For me it is perfect to start with something simple in Prelude and build
more general functions around it in other modules. This is a scheme that
we can manage over time with backwards compatibility.
More information about the Libraries
mailing list