English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

Browse thread
[Caml-list] Baffling typing problem
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2003-02-19 (08:44)
From: Jacques Garrigue <garrigue@k...>
Subject: Re: [Caml-list] Baffling typing problem
From: Alessandro Baretta <alex@baretta.com>
> I attempt to compile it with ocamlc I get this error message:
> File "prova.ml", line 1, characters 16-169:
> Warning: this pattern-matching is not exhaustive.
> Here is an example of a value that is not matched:
> ""
> File "prova.ml", line 6, characters 11-27:
> The type of this expression,
> _[> `BANG of _[> `Foo] * '_a list * '_b list
>    | `WHIZ of _[> `Bar] * _[> `Frob | `Twid] list
>    | `WHOA of _[> `Foo] * _[> `Frob | `Knob | `Twid] list],
> contains type variables that cannot be generalized

This is not really related to polymorphic variants, only to the fact
they are polymorphic.
Due to the value-only restriction, you have an expression that cannot
be generalized. Since it contains some type variables, the compiler
cannot produce a .cmi from it.

> Is there any way around this limitation?

Write a .mli, or just explicitly put a type annotation on that

Seeing the shape of your type, it may be the case that the CVS version
of ocaml could generalize it (actually this is sound). This should
avoid some of such problems.

Jacques Garrigue
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners