[Haskell-cafe] Puzzled by error with forall quantifier.

Iavor S. Diatchki diatchki at cse.ogi.edu
Mon Feb 2 11:40:15 EST 2004


hello,
just skip the forall.   "free" type variables are implicitly 
forall-quantified.
the forall keyword is used for functions that need to take polymorphic 
functions
as arguments, but that's advanced stuff.
so in short, this should work:

 > class Space t
 > class Space t => HasY v t
 >   where
 >     assignY :: v -> t -> t
 >     getY :: t -> v
 >     varY ::  Space w => v -> (t->t) -> (w->w)

the next problem you are likely to run into is ambiguities,
and you might want to take a look at functional dependencies.

hope this helps
iavor


Theodore S. Norvell wrote:

>
> Can anyone explain the following error message from Hug98
> (with extensions enabled)?
>
> I have
>
> > class Space t
> > class Space t => HasY v t
> >   where
> >     assignY :: v -> t -> t
> >     getY :: t -> v
> >     varY :: forall w . Space w => v -> (t->t) -> (w->w)
>
> I get an error on the last definition "quantifier does not
> mention type variable v" (and if I quantify v, then it complains
> that t is not quantified).
>
> The idea I'm trying to express is that for any instance of HasY v t
> there should be a function varY with type
>              v -> (t->t) -> (w->w)
> for some type w of class Space.
>
> Any help much appreciated.
>
> Is there any kind of tutorial introduction to "forall" out there?
>
> Cheers,
> Theo Norvell
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe



-- 
==================================================
| Iavor S. Diatchki, Ph.D. student               | 
| Department of Computer Science and Engineering |
| School of OGI at OHSU                          |
| http://www.cse.ogi.edu/~diatchki               |
==================================================



More information about the Haskell-Cafe mailing list