
29 Sep
2008
29 Sep
'08
5:57 a.m.
On Fri, 26 Sep 2008, Duncan Coutts wrote:
On Fri, 2008-09-26 at 21:51 +0100, Simon Marlow wrote:
There are basically only two sensible choices for the Functor instance for (->):
(a) don't define one at all (b) define one in Control.Monad, and give up on Haskell 98 compliance
The current situation, namely
(c) define it as an orphan, and give up on module abstraction
is not a sensible choice.
Right.
No orphan instances in libraries.
Me too. Although I'm afraid some of my packages still contain orphan instances. When I need a new instance to an existing class+type I ask the library author for that instance and in the meantime I use a 'newtype'. Frequently a newtype turns out to be better anyway.