Browse thread
[Caml-list] copy of parametrized object
- Bow-Yaw Wang
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Bow-Yaw Wang <bywang@s...> |
| Subject: | [Caml-list] copy of parametrized object |
Hi, I'd like to know how to make independent copies of parameterized objects. Consider the following example: # class ['a] t = object method id (x:'a) = x end;; class ['a] t : object method id : 'a -> 'a end # let o = new t;; val o : '_a t = <obj> # let p = Oo.copy o;; val p : < id : '_a -> '_a > = <obj> # o#id 1;; - : int = 1 After defining a simple parameterized class t, I create an object o of type '_a t and make p as a copy. After the type '_a is instantiated to int, I'd expect p to retain its type < id : '_a -> '_a >. However, # p;; - : < id : int -> int > = <obj> So my questions are: 1. Is there a way to make a copy of o so that it can be instantiated differently? 2. If not, is there any type-theoretic explanation? I'm just curious if it may make type system unsound. I'm aware of polymorphic methods. Unfortunately, the project I'm working on uses parameterized classes. Using polymorphic methods doesn't seem to be feasible at the moment. :( Thanks in advance, Bow-Yaw ------------------- 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