caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] Unbound type variables
@ 2001-09-13 17:15 Patrick M Doane
  2001-09-13 17:36 ` Olivier Andrieu
  2001-09-13 17:47 ` Didier Le Botlan
  0 siblings, 2 replies; 4+ messages in thread
From: Patrick M Doane @ 2001-09-13 17:15 UTC (permalink / raw)
  To: caml-list

While writing code today, I came across an annoying problem with using
polymorphic variants and objects. The basic code fragment is this:

class c = object
  method m x =
    match x with
      | `A -> ()
      | `B -> ()
      | `C -> ()
end

which produces an error:

The method m has type
  [< `A | `B | `C] -> unit
where .. is unbound

Now, there is a simple solution to the problem:

  type t = [ `A | `B | `C]

  ...

  match (x:t) with


but one of the benefits of using polymorphic variants is that I can
usually avoid such redundant declarations.

I'm also suprised by the inferred type, since the polymorphism
just causing a failure and there isn't anyway I'm aware of to be able to
bind that row variable to the type of the class.  Would it be better to
type the expression differently from within an object context?

Any other ways I can improve what I'm doing?

Patrick

-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2001-09-13 17:40 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-09-13 17:15 [Caml-list] Unbound type variables Patrick M Doane
2001-09-13 17:36 ` Olivier Andrieu
2001-09-13 17:47 ` Didier Le Botlan
2001-09-13 17:40   ` Patrick M Doane

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).