
Hello C, Sunday, March 18, 2007, 8:47:21 PM, you wrote:
Type synonyms aren't applied as I would expect during kind checking. What's going on here?
type WithList a b = b [a] type FooPair a b = (b, a -> b)
ghc fixes kinds of parameters in 'type' definitions. in your definition, it fixes arity of a and b at minimal level where definition can be typechecked. if that isn't what you need, you should add manual kind definitions: type WithList a (b :: * -> * -> * ) = b [a] type FooPair a b = (b, a -> b) (it will work in ghc, probably hugs and haskell-prime, but not in haskell-98. you will need -fglasgow-exts ghc option to compile this module. read more about kinds in GHC manual) another option is to add one more parameter to WithList giving ghc a hint about kind of b parameter :) type WithList a b c = b [a] c type FooPair a b = (b, a -> b) -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com