caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Alessandro Baretta <alex@baretta.com>
To: Michael Vanier <mvanier@cs.caltech.edu>
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] a design problem requiring downcasting? (long)
Date: Mon, 30 Sep 2002 11:54:18 +0200	[thread overview]
Message-ID: <3D981F4A.8000106@baretta.com> (raw)
In-Reply-To: <200209300709.g8U798C00735@orchestra.cs.caltech.edu>



Michael Vanier wrote:
> 
> I'm not sure.  All the approaches I've seen in ocaml seem incredibly heavy
> compared with RTTI in java (and/or more brittle).  I'm not sure about your
> approach, though (it looks pretty light).  Thanks for the suggestion!

You are very welcome ;)

> Here is a question for the language designers: is there a technical reason
> why RTTI can't be done easily in the ocaml object system?  Or is the lack
> of RTTI more of a "moral" issue?  Or is it just due to not enough time to
> put in all the features one would like?  I can imagine that the fact that
> subtyping is implicit for any class that implements the methods of a
> superclass might make RTTI very tricky to implement cleanly in a general
> way.  

I don't think there will be any Caml preachers prophesyzing 
your doom for having desired RTTI. I just have a feeling it 
does not fit in cleanly with the type system.

> It's too bad we can't all roll our own object systems for ocaml ;-)
> 
> Mike

Who says you can't? Pick up CamlP4 and write preprocessing 
code adding your favorite flavor of RTTI to your your 
classes. You might very well automate the generation of 
polymorphic-variant-RTTI-tagging object creation 
functions--my flavor of RTTI--or any other flavor you like 
best. One might even come up with a syntax extension 
supporting some form of double-dispatch polymorphism. But, 
to my great dishonor, I'm still not a CamlP4 guru, so I'll 
leave this to others.

Alex

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


      reply	other threads:[~2002-09-30  9:44 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-09-26  9:01 Michael Vanier
2002-09-26 14:32 ` Remi VANICAT
2002-09-26 15:19 ` nadji
2002-09-26 15:27   ` Remi VANICAT
2002-09-26 15:55     ` nadji
2002-09-26 15:53 ` Jeffrey Palmer
2002-09-26 16:35 ` Oleg
2002-09-26 17:47 ` brogoff
2002-09-26 19:14 ` Fred Smith
2002-09-27 17:01   ` Tim Freeman
2002-09-26 22:46 ` Alessandro Baretta
2002-09-27  7:20 ` Francois Pottier
2002-09-27 10:16   ` Michael Vanier
2002-09-29 22:59     ` Alessandro Baretta
2002-09-30  7:09       ` Michael Vanier
2002-09-30  9:54         ` Alessandro Baretta [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3D981F4A.8000106@baretta.com \
    --to=alex@baretta.com \
    --cc=caml-list@inria.fr \
    --cc=mvanier@cs.caltech.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).