
7 Oct
2008
7 Oct
'08
12:29 p.m.
On Tue, Oct 7, 2008 at 1:13 AM, Ryan Ingram
You may think it doesn't matter, because you could instantiate it to anything after the fact, but it's possible that the result of the case statement depends on the choice of instantiation for sy; consider if sy had an additional constraint:
Sealed (fromInteger) :: forall t. Num t => Sealed ((->) Integer)
Now the result of the case statement is the concrete implementation of fromInteger for whatever type it gets instantiated at.
Thanks, I was indeed hoping to see examples of things that break if the type checker behaved the way I wanted. Jason