[Haskell-cafe] Puzzled by error with forall quantifier.
Iavor S. Diatchki
diatchki at cse.ogi.edu
Mon Feb 2 11:40:15 EST 2004
just skip the forall. "free" type variables are implicitly
the forall keyword is used for functions that need to take polymorphic
as arguments, but that's advanced stuff.
so in short, this should work:
> class Space t
> class Space t => HasY v t
> 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
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?
> Theo Norvell
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
| 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