The back-compat can't replace code that uses the `Identity` data constructor, though. It will also make existing code bases ambiguous if they have defined their own `Id` data constructor. Pretty easy fixes, but nontrivial, so worth noting. Despite the pain involved, I think that Identity -> Id when moving this functor into base is a good choice.

-- Dan Burton


On Sat, Oct 12, 2013 at 12:40 PM, Dag Odenhall <dag.odenhall@gmail.com> wrote:

On Sat, Oct 12, 2013 at 7:32 PM, Edward Kmett <ekmett@gmail.com> wrote:

On a related note Simon recently asked the core libraries committee if we should move Data.Functor.Identity into base.

How about calling that one Id then (already in Data.Traversable but not exported). This would be more consistent with Const not being called Constant. Maybe also put it in Control.Applicative or move both somewhere better.

For back-compat, transformers could continue to export those modules, with aliases like type Identity = Id.


_______________________________________________
Libraries mailing list
Libraries@haskell.org
http://www.haskell.org/mailman/listinfo/libraries