On Oct 20, 2010, at 11:58 AM, Gregory Crosswhite <[email protected]> wrote:
> On 10/20/10 4:09 AM, Simon Peyton-Jones wrote: >> No, this isn't optimised. The trouble is that you write (map Foo xs), but >> GHC doesn't know about 'map'. We could add a special case for map, but then >> you'd soon want (mapTree Foo my_tree). > > How about a special case for fmap? That seems like it should handle a lot of > cases. > Or even better, a special handling of 'id' in rules pragmas that would cause any rule matching id to also match any newtype constructor or projection. Or have the compiler automatically add rules that map all newtype wrappers and unwrappers to unsafeCoerce and make sure that unsafeCoerce has rules for map, fmap, (.), etc. --James_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
