[Haskell-cafe] lawless instances of Functor

Dan Piponi dpiponi at gmail.com
Mon Jan 4 18:15:20 EST 2010

On Mon, Jan 4, 2010 at 3:01 PM, Derek Elkins <derek.a.elkins at gmail.com> wrote:

> Ignoring bottoms the free theorem for fmap can be written:
> If h . p = q . g then fmap h . fmap p = fmap q . fmap g

When I play with http://haskell.as9x.info/ft.html I get examples that
look more like:

If fmap' has the same signature as the usual fmap for a type

and h . p = q . g

then fmap h . fmap' p = fmap' q . fmap g

>From which it follows that if fmap' id = id then fmap' is fmap.

But I don't know how to prove that uniformly for all types, just the
ones I generated free theorems for.

More information about the Haskell-Cafe mailing list