On Fri, Nov 13, 2009 at 3:36 PM, David Menendez <d...@zednenem.com> wrote:
> On Fri, Nov 13, 2009 at 3:26 PM, Andy Gimblett <hask...@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.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe