Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] polymorphic methods in objects?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Nicolas Cannasse <warplayer@f...>
Subject: Re: [Caml-list] polymorphic methods in objects?
> Why can't objects have polymorphic methods ? I'm trying a compile and
> ocamlc gets upset because I have a method with an unbound type in its
> signature (see below for ocamlc error output).
>
> Must methods be type paramaterized through some kind of a template
> mechanism? This seems a bit limiting: the methods of an object would have
> their type signature fixed across the lifetime of an object.
>
>       method dummy_init : 'a -> unit
>       method dump : out_channel -> unit
>       method init : unit -> unit
>       method join : string -> unit
>       method null : unit -> unit
>       method resolv : string -> hmap option
>     end
> The method dummy_init has type 'a -> unit where 'a is unbound

two ways of doing that :

first, having a parameterized object :

class ['a] my_object : object
    method dummy_init : 'a -> unit
end

But perhaps here you really want that any value passed to your object is ok.
So you have to use a polymorphic method, which is not bound to the class
type :

class my_object : object
    method dummy_init : 'a . 'a -> unit
end

This way, you cannot of course store the parameter into a field of my_object
this it is not polymorphic.

Nicolas Cannasse

-------------------
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