Browse thread
[Caml-list] troubles with polymorphic variant in class
-
François-Xavier HOUARD
-
skaller
- François-Xavier HOUARD
- Richard Jones
- nakata keiko
-
skaller
[
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: | François-Xavier HOUARD <IdeFX@I...> |
| Subject: | Re: [Caml-list] troubles with polymorphic variant in class |
Le dim 13/06/2004 à 19:59, skaller a écrit : > (* fixpoint *) > type widget = 'w widget' as 'w > > which effectively solves the type equation > 'w = 'w widget (and names the result widget). > Now define non-polymorphic classes: > > class button = [widget] button' > class window = [widget] window' > > This is not so bad for a single parameter 'w. > For multiple parameters the notation soon becomes > too unwieldy to be practical. But the answer you gave me, which I find quite nice, don't allow my user to add his own class.... I could do the stuff with a parametrized module (the parameter given by the user would contain the variant used in the program... Including the ones of my library!!), or, even uglier, use a close variant in my module, which would be like: [ Window of window | Frame of frame | User_variant of 'a ] And 'a, the parameter of the module, given by the user, would also be a variant... module SillyModule = struct type t = [ MyWindow of myWindow | MyText of myText ];; end ;; module myGui = Gui (SillyModule);; let a = new Window;; let x = new myText a;; let l = a#get_child in match l with h::t -> (match h with myGui.User_variant v -> ( match v with MyText t -> ....... | _ -> ) | _ -> raise Not_found ) .... Who the hell would use this ??? So, if I can't find a better solution, i could still try to find a sado-m(l)asochist mailing list, to find potential users ! ;)) Let's be more serious. What you said is fine, but, please, tell me there is an easier solution to make it work with user defined class... Please.... Thanks for all FX Houard, desperate to find an elegant and extensible solution to his problem... And attracted by the dark-dynamic-typed side of coca-ml. ------------------- 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