Problems with scoped type variables and existential data constructors
Dylan Thurston
dpt@math.harvard.edu
Tue, 21 Aug 2001 15:27:35 -0400
On Tue, Aug 21, 2001 at 09:22:31AM -0700, Simon Peyton-Jones wrote:
> So it's not ambiguous; but my other comment was right. In your example:
>
> | > applyId (Exist x) = Exist (Id x)
>
> the LHS pattern discharges the constraint (Silly a1 t), but the RHS
> introduces the
> constraint (Silly a2 t), and there's no connection between t1 and t2.
> Why should there be? You could give a type signature
>
> applyId :: Exist a -> Exist a
>
> and that would force them to be the same
Great, thank you very much!
--Dylan