
This discussion currently is limited in scope to the types and combinators
from Foldable and Traversable.
As a concrete proposal, I proposed replacing the combinators in the Prelude
that are duplicated from Foldable and Traversable, with the possible
exception of 'concat' and 'concatMap'.
Any further generalization would be a separate proposal.
-Edward
On Wed, May 22, 2013 at 11:16 AM, Ben Gamari
I'm another from the crowd of silence observers. It seems to me that we still don't have a fully specified proposal. In particular which functions are we discussing? Only those from Traversable and Foldable? map? It would be nice to make this clear with a concrete proposal.
Despite this, here's my 2-pence,
+1 Generalise Prelude.mapM etc 0 Remove Prelude.mapM etc -1 Add more monomorphic variants to Prelude (e.g. whenJust) -1 Nothing
The monomorphic elements of the Prelude are an aesthetic wart and a significant inconvenience. Being a beginner in the not so distant past, I am also skeptical that these functions are significantly easier for beginners to grasp and use.
Concerning removing mapM without replacement: I'd be concerned that moving such a frequently used function out of the Prelude might be a bit confusing for beginners. Given the prominence of Monads in Haskell, it might be perplexing to find (f)map exported by the Prelude yet not mapM.
On the note of the mtl's exports, Wren suggests that removing this has been discussed previously to no avail. My Google-fu might be failing me but all I've been able to find is this[1] lone message. At the risk of introducing yet another code-breaking change, is there a reason removing these re-exports hasn't been discussed further?
Cheers,
- Ben
[1] http://www.haskell.org/pipermail/libraries/2005-December/004666.html
_______________________________________________ Libraries mailing list Libraries@haskell.org http://www.haskell.org/mailman/listinfo/libraries