From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id PAA07446; Mon, 3 May 2004 15:05:01 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id PAA07456 for ; Mon, 3 May 2004 15:05:00 +0200 (MET DST) Received: from postfix3-1.free.fr (postfix3-1.free.fr [213.228.0.44]) by nez-perce.inria.fr (8.12.10/8.12.10) with ESMTP id i43D4xEV028670 for ; Mon, 3 May 2004 15:04:59 +0200 Received: from warp (lns-th2-5f-81-56-197-80.adsl.proxad.net [81.56.197.80]) by postfix3-1.free.fr (Postfix) with SMTP id 0EC0CC4225; Mon, 3 May 2004 15:04:58 +0200 (CEST) Message-ID: <002901c4310f$1e33fad0$ef01a8c0@warp> From: "Nicolas Cannasse" To: "Marcin 'Qrczak' Kowalczyk" , "caml-list" References: <200404280613.19547.jdh30@cam.ac.uk> <1083141467.9537.845.camel@pelican.wigram> <200404281018.14913.jdh30@cam.ac.uk> <1083151482.9537.904.camel@pelican.wigram> <93ADD9EA-9936-11D8-BD03-000A958FF2FE@wetware.com> <1083173516.9537.1162.camel@pelican.wigram> <1083542538.9152.65.camel@qrnik> <1083570883.20722.536.camel@pelican.wigram> <1083574691.1643.55.camel@qrnik> <1083581924.20722.584.camel@pelican.wigram> <1083588018.1643.156.camel@qrnik> Subject: Re: [Caml-list] [ANN] The Missing Library Date: Mon, 3 May 2004 15:04:06 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-2" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 X-Miltered: at nez-perce with ID 4096437B.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Loop: caml-list@inria.fr X-Spam: no; 0.00; cannasse:01 warplayer:01 caml-list:01 statically:01 generics:01 subtypes:01 subtypes:01 dynamically:01 subtyping:01 inference:01 subtyping:01 typer:01 redefining:01 cannasse:01 ocaml:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk > > Felix is statically typed, everything is recursive, > > recursive types are supported, it has generics, > > overloading by selecting the most specialised > > function (like C++). > > I left static typing of my language for possible future research, > because designing a good static type system is extremely hard. > > Type systems from the functional side typically don't support open world > assumption wrt. the set of subtypes of a type. They can't express the OO > way of adding subtypes in various parts of the program, without a > centralized place where all such extensions are gathered and tied > together into one type, and with the ability to dynamically check > whether the given object has the given subtype of the declared type. > In other words, you can't emulate dynamic typing in them. You're true, decentralized OO subtyping is more flexible because types are "opened" for further additions, while ocaml types are "closed" and fully defined and centralized (that's not the case for polymorphic variants of course). I have been working recently on a OO static type system with global type inference and structural subtyping. The typer works pretty well, although not yet optimized. I found some interesting properties : redefining an inherited method is possible, but actually safely breaks implicit subtyping acquired from inheritence.. Regards, 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