Ian,
Mmm...
* Allow "type Id =" (I prefer this to "type Id" as I think we are more
likely to want to use the latter syntax for something else later
on).
Looks kind of funny; I'm not too thrilled.
* Implementations should eta-reduce all type synonyms as much as
possible, e.g.
type T a b c d = X a b Int c d
is equivalent to
type T a b = X a b Int
and
type Id a = a
is equivalent to a type that cannot be expressed directly.
I like this alternatie a bit better, but I can also see how it
introduces a lot of potential confusing, especially for novice
Haskell programmers. You write something and the compiler goes along
with something else...
Maybe this will serve as a source of inspiration: http://
portal.acm.org/citation.cfm?doid=581478.581496 [1].
Cheers,
Stefan
[1] Matthias Neubauer and Peter Thiemann. Type classes with more
higher-order poly-
morphism. In Proceedings of the Seventh ACM SIGPLAN International
Conference on
Functional Programming (ICFP ’02), Pittsburgh, Pennsylvania, USA,
October 4–-6, 2002,
pages 179–-190. ACM Press, 2002.
_______________________________________________
Haskell-prime mailing list
Haskell-prime@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-prime