[Haskell-cafe] Re: Unique functor instance
DavidA
polyomino at f2s.com
Tue Nov 25 09:02:25 EST 2008
Luke Palmer <lrpalmer <at> gmail.com> writes:
>
> I've been wondering, is it ever possible to have two (extensionally)
> different Functor instances for the same type? I do mean in Haskell;
> i.e. (,) doesn't count. I've failed to either come up with any
> examples or prove that they all must be the same using the laws.
>
> Thanks,
> Luke
>
A related question would be: are there two abstractions whose underlying
representations (as algebraic data types) are isomorphic?
For example, suppose that we represented both lists and sets as [a]. One would
expect the Functor instances for list and set to be different, since sets
can't contain duplicates. Unfortunately, it's not possible to express this in
Haskell, because we can't assume an Eq constraint when defining our Functor
instance.
I suspect that the answer to the question is, yes, you can have different
Functor instances. All you need is a sum-product type that it's possible to
interpret as two different abstractions, leading to two different Functor
instances.
More information about the Haskell-Cafe
mailing list