
On Sun, Jun 15, 2014 at 4:13 PM, Herbert Valerio Riedel
I wonder if Haskell could be extended to be able to write something like
import Data.Category
and have the more general versions of (.) and id automatically shadow the monomorphic versions brought in scope by the Prelude.
We use a custom prelude that almost gives us this. You have to do: {-# LANGUAGE NoImplicitPrelude #-} import Prelude.Polymorphic This gives us Foldable/Traversable/Category polymorphic variants of the prelude functions. It's been a pretty good experience. The largest problem, as Edward already mentioned, are the re-exports of Control.Monad from the mtl package. I'm -1 on making (.) polymorphic by default though. The errors can be kind of intimidating for the beginning Haskeller. Let's first see how it goes with Foldable/Traversable in the prelude... Erik