Does this, and should this type check on GHC 6.10.x ?

Tom Schrijvers Tom.Schrijvers at cs.kuleuven.be
Fri Jun 26 07:08:42 EDT 2009


> We got a code (please refer to the attached lhs file) that uses type
> families and type classes very cleverly.  We don't know who wrote
> itbecause this was a contribution of an anonymous reviewer on our paper,
> which we are still revising. http://kyagrd.dyndns.org/wiki/SharedSubtypes
> Although we learned a lot from this code, we still have unsolved
> question about this code.
>
> The problem is, we are still not sure whether this code actually type
> checks in any GHC version, and we are not even sure whether this should
> type check or not as it is.

Have you first, before you turn to GHC< considered whether this code 
should be well-typed in any type system?

> Review3.lhs:67:29:
>    Could not deduce (Expandable (Tuple (Map ((,) t2) ys)))
>      from the context (xs ~ t2 ::: ts2, Expandable t2)
>      arising from a use of `:::' at Review3.lhs:67:29-59

At first sight, it looks like this constraint

 	Expandable (Tuple (Map ((,) t2) ys))
is indeed one that's required to hold in order to make the code 
well-typed. Do you agree?

Yet I see no instance of Expandable for Tuple. So why do you think this 
constraint should hold anyway?

Tom


--
Tom Schrijvers

Department of Computer Science
K.U. Leuven
Celestijnenlaan 200A
B-3001 Heverlee
Belgium

tel: +32 16 327544
e-mail: tom.schrijvers at cs.kuleuven.be
url: http://www.cs.kuleuven.be/~toms/

Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm


More information about the Glasgow-haskell-users mailing list