Manuel

|   - We cannot derive Typeable.  This seems a problem of notation, more
| than
|     anything else.  Why?  For a binary vanilla data type "T a b", we
| would
|     generate an instance Typeable2 T; ie, the instance is for the
| constructor
|     alone.  In the case of a family instance, such as (S [a] (Maybe
| b)), we
|     simply have no means to denote the associated constuctor.  It
| appears to
|     require type level lambda - something like (/\a b. S [a] (Maybe b).

Suppose you have an indexed data type with kind
        T :: * -> * -> * -> *
Of these parameters, suppose 2 are type indices and 1 is fully polymorphic.

Then shouldn't we generate an instance for Typeable1, *not* Typeable3:
        instance (Typeable a, Typeable b) => Typeable1 (T a b) where...

Then there is no difficulty about generating its type representation is there?

Simon

_______________________________________________
Cvs-ghc mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to