
On Thu, Mar 08, 2007 at 09:00:51PM +0100, Twan van Laarhoven wrote:
I would like to propose to add a way to automatically derive instances of Functor. From looking at existing code, it seems that almost all Functor instances I see are derivable using the algorithm presented here, resulting in less boilerplate code. This proposal is compatible with Haskell98 (and therefore also with Haskell').
I don't know if you've seen Ralf Hinze's "Polytypic values possess polykinded types", but the map example there is relevant. (Also to the semantics of newtype deriving that you posted a while ago.) http://www.informatik.uni-bonn.de/~ralf/publications/SCP.ps.gz Even if you handle contrapositive arguments (like the first argument of ->), there will still be things like newtype Endo a = Endo (a -> a)