[Haskell] Proposal: Allow "\=" for field update in record update syntax

Keean Schupke k.schupke at imperial.ac.uk
Thu Mar 3 04:42:17 EST 2005


Benjamin Franksen wrote:

>
>This is extremely cool. The type of unwrap is indeed general enough. 
>Unfortunately, it doesn't help, because the result type of wrap
>
>Wrap (forall a. a -> a)
>
>still isn't accepted in an instance declaration. Neither is the pair
>
>(unwrap, Wrap (forall a. a -> a))
>
>Or maybe I have not quite understood what you proposed to do with these 
>definitions.
>
>  
>
No, you're right, cool but useless! I think I lost sight of the 
problem... we want to wrap higher order types like:

(forall a . a -> a)

"Wrap a" makes the higher order type a parameter - which is still not 
"wrapped"...

Template-haskell would need to generate a new unique type:

newtype ForallAzdAzaA = ForallAzdAzaA { forallAzdAzaA : forall a . a -> a }

Then all occurances of the plain type (forall a . a -> a) would need 
replacing with
ForallAzdAzaA. The tricky bit would be determining where in the code to 
put the
wrap and unwrap bits.

But the point is moot anyway. Without first class labels you still need 
to write the
newtype declaration...

    Keean.



More information about the Haskell mailing list