On 27 December 2011 17:38, Michael Snoyman <mich...@snoyman.com> wrote: > Thanks to Mark Wright for pointing this out[1]. > > We have the equivalent of the following code in persistent: > > {-# LANGUAGE MultiParamTypeClasses #-} > data Key backend entity = Key > > class Monad (b m) => Foo b m where > func :: b m (Key b m) > > This code works fine with GHC 7.0, but I get the following message from GHC > 7.4: > > Expecting two more arguments to `b' > In the type `b m (Key b m)' > In the class declaration for `Foo' > > Is this expected behavior, or a bug? If the former, what would be a > possible workaround? > > Thanks, > Michael > > [1] https://github.com/yesodweb/persistent/issues/31 > > _______________________________________________ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe
I fixed a similar breakage in the hmatrix library: https://github.com/AlbertoRuiz/hmatrix/commit/a4f38eb196209436f72b938f6355f6e28474bef3 I don't know if it's a bug in GHC, but the workaround is to add an explicit kind signature: {-# LANGUAGE KindSignatures, MultiParamTypeClasses #-} data Key (backend :: * -> * -> *) entity = Key class Monad (b m) => Foo b m where func :: b m (Key b m) Cheers, Bas _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe