Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
Re: [Caml-list] OCaml wishlist
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2003-10-21 (22:39)
From: Richard Jones <rich@a...>
Subject: Re: [Caml-list] OCaml wishlist
[by accident, this didn't get sent to the list first time]

On Tue, Oct 21, 2003 at 10:38:52AM -0700, David Brown wrote:
> I'm curious what the argument for Ocaml objects being weaker is.  For
> the most part, the OCaml object system is much more flexible, mostly
> because class inheritance and type inheritance are kept seperate.  Are
> you complaining that coersion has to be explicit, and that you can't
> cast to a more specific type?

Thanks for your answer David. In response to the above, I'd say that
I've found OCaml objects to generally be OK, but sometimes they can be
really infuriating! Examples:

* Type inference doesn't work sometimes, so you need to add 'just the
  right' type declaration to an expression to get it to compile.

* Upcasting - sometimes it works, sometimes it requires an explicit
  :> to upcast. Once or twice I've had a really strange error where
  I've needed to do some sort of double upcast-and-type-declaration,
  IIRC it was (obj :> superclass : superclass)

* Polymorphic methods have a really odd & unintuitive syntax.

* It seems like you need to use a separate MLI file to be able to
  define completely private (as opposed to just protected) methods,
  which isn't really documented well.


Richard Jones.
Merjis Ltd. - all your business data are belong to you.
"One serious obstacle to the adoption of good programming languages is
the notion that everything has to be sacrificed for speed. In computer
languages as in life, speed kills." -- Mike Vanier

To unsubscribe, mail Archives:
Bug reports: FAQ:
Beginner's list: