[Haskell-cafe] A small (?) problem with type families

Edward Kmett ekmett at gmail.com
Fri Nov 13 20:20:14 EST 2009


On Fri, Nov 13, 2009 at 3:36 PM, David Menendez <dave at zednenem.com> wrote:

> On Fri, Nov 13, 2009 at 3:26 PM, Andy Gimblett <haskell at gimbo.org.uk>
> wrote:
> > First a type family where the type Y is functionally dependent on
> > the type X, and we have a function from Y to ().
> >
> >> class X a where
> >>   type Y a
> >>   enact :: Y a -> ()
>
> This is ambiguous. Type families are not injective (that is, Y a ~ Y b
> does not imply a ~ b), so there's no way for the compiler to figure
> out which instance of X is being used when it encounters enact.
>

Note: that if you need this injectivity you can use a data family instead.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20091113/f6f137b5/attachment.html


More information about the Haskell-Cafe mailing list