AW: simulating dynamic dispatch

Markus.Schnell@infineon.com Markus.Schnell@infineon.com
Mon, 24 Mar 2003 10:02:41 +0100


I think I get it. But to be sure:
The forall means: The type for a may not be the same
throughout the whole function. It just has to follow
the pattern specified inside the braces.

Interestingly, when I want hugs to show me the type
of
> fun::(forall a.[a]->Int)->[b]->[c]->Int
it tells me: ERROR - Use of fun requires at least 1 argument 
Why that? At least I have explicitely specified the type.

Markus

> One may want:
> 
> fun f x y = f x + f y
> 
> for instance:
> 
> fun length [True, False] [1,2]
> 
> Therefore, I would say, you need typing a la
> 
> fun::(forall a.[a]->Int)->[b]->[c]->Int
> 
> Ciao,
> Steffen
>