Two small further extensions to associated types
authorSimon Peyton Jones <simonpj@microsoft.com>
Thu, 1 Sep 2011 08:33:58 +0000 (09:33 +0100)
committerSimon Peyton Jones <simonpj@microsoft.com>
Thu, 1 Sep 2011 08:33:58 +0000 (09:33 +0100)
commitc27df60d69ad54a69723510c57e238f31a59c532
tree84184b8c12f3b93dba1e76374b5b1cf0488328b1
parenteb46e0de6eab60483f38ed2088d9de13d8e74e2f
Two small further extensions to associated types

a) Allow multiple AT decls for in a single instance
b) Allow a free type parameter to be instantiated

Example   class C a where
            type T a x :: *

  data A
          data B
          instance C Int where
            type T Int A = Int
            type T Int B = Bool

There is no reason to prohibit this, and as we move
towards a proper kind system it may even be useful.

I also updated the documentation to cover this change
and the previous one of allowing free type parameters
for associated families.
compiler/rename/RnSource.lhs
compiler/typecheck/TcInstDcls.lhs
docs/users_guide/glasgow_exts.xml