Yes it's deliberate. (Turned out to be easy and convenient.) Yes it goes beyond H98, so GHC types a few too many programs even in H98 mode. I guess I should document it. Simon | -----Original Message----- | From: glasgow-haskell-users-bounces@haskell.org [mailto:glasgow-haskell-users- | bounces@haskell.org] On Behalf Of Ross Paterson | Sent: 17 November 2005 11:31 | To: glasgow-haskell-users@haskell.org | Subject: kind inference | | 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? | | _______________________________________________ | Glasgow-haskell-users mailing list | Glasgow-haskell-users@haskell.org | http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
On Thu, Nov 17, 2005 at 12:32:37PM -0000, Simon Peyton-Jones wrote:
Yes it's deliberate. (Turned out to be easy and convenient.) Yes it goes beyond H98, so GHC types a few too many programs even in H98 mode. I guess I should document it.
I think the H98 rule is arbitrarily restrictive. But what about going further and considering the occurrences of type constructors in instance declarations, type signature declarations and expression type signatures?
participants (2)
-
Ross Paterson -
Simon Peyton-Jones