Simon Peyton-Jones wrote: > NoMatchErr.hs:20:11: > Couldn't match expected type `Memo d' > against inferred type `Memo d1' > NB: `Memo' is a (non-injective) type function > In the second argument of `(.)', namely `appl' > In the expression: abst . appl > In the definition of `f': f = abst . appl > > (Rather than give its kind, I thought it was better to focus on the > reason for the mis-match, namely the non-injectivity.)
I'd suggest "is a type function and thus may not be injective" or similar, otherwise people will think that type functions which are injective according to the instances they've defined would be ok. Cheers, Ganesh =============================================================================== Please access the attached hyperlink for an important electronic communications disclaimer: http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html =============================================================================== _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe