Changes between Initial Version and Version 1 of Ticket #1634


Ignore:
Timestamp:
Aug 31, 2007 3:17:28 PM (7 years ago)
Author:
simonpj
Comment:

Currently, the two types are not the same. They used to be the same; see Section 4.6 of Practical type inference for higher rank types; but adding inference for impredicative types meant we had to remove deep skolemisation.

See also #1123.

I'm interested in gathering evidence for whether this change really matters to people. Did this arise in a real program?

Incidentally, another fix is just to eta-expand:

t1 :: a->(forall b. b->(a,b)) 
t1 x y = (,) x y

Simon

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #1634 – Description

    initial v1  
    11{{{ 
    2 t1 :: a->(forall b. b->(a,b)) -- isn't this the same as forall a b. a->b->(a,b) 
     2t1 :: a->(forall b. b->(a,b))  
     3-- isn't this the same as forall a b. a->b->(a,b) 
    34t1 = (,) 
    45}}}