kind inference

Ross Paterson ross at
Thu Nov 17 06:30:34 EST 2005

The Haskell 98 Report says kind inference is to be done over dependency
groups with polymorphic kinds defaulted to *, and hence the following
example (from 4.6) is illegal:

	data Tree a  = Leaf | Fork (Tree a) (Tree a)

	type TreeList = Tree []

GHC 6.4 seems to perform kind inference across all the data, newtype,
type and class declarations of a module before defaulting, and so accepts
the above.  An improvement, I think, but unadvertised.  Was it intentional?

More information about the Glasgow-haskell-users mailing list