[Haskell] Higher types in contexts

Simon Peyton-Jones simonpj at microsoft.com
Tue Mar 6 23:40:17 CET 2012


Yes, it's hard: it's impredicative polymorphism.  Dimitrios and Tim and I have a plan for a modest but reliable form of impredicative polymorphism, which we hope to have ready for the Haskell Symposium deadline.  It is relatively simple, like QML, but a bit clumsy.  That's the tradeoff.

Simon

|  -----Original Message-----
|  From: haskell-bounces at haskell.org [mailto:haskell-bounces at haskell.org] On
|  Behalf Of Barney Hilken
|  Sent: 05 March 2012 12:22
|  To: haskell at haskell.org
|  Subject: [Haskell] Higher types in contexts
|  
|  Is there any deep reason why I can't write a polymorphic type in a context? I think
|  the record update problem can be (sort of) solved if you could write:
|  
|  class Has r Rev (forall a. [a] -> [a]) => HRClass r where
|  	setHRClass :: (forall a.[a] -> [a]) -> r -> r
|  
|  but polymorphic types are not allowed in contexts. Is this one of the problems SPJ
|  considers "Hard" or is it a feasible extension?
|  
|  Barney.
|  
|  
|  _______________________________________________
|  Haskell mailing list
|  Haskell at haskell.org
|  http://www.haskell.org/mailman/listinfo/haskell





More information about the Haskell mailing list