From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.3 required=5.0 tests=AWL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by yquem.inria.fr (Postfix) with ESMTP id 1A510BBAF for ; Mon, 20 Apr 2009 13:59:29 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ao0AAKsA7ElCbwQZkWdsb2JhbACWPgEBAQEJCwoHEQS4coN8Bg X-IronPort-AV: E=Sophos;i="4.40,217,1238968800"; d="scan'208";a="38745960" Received: from out1.smtp.messagingengine.com ([66.111.4.25]) by mail4-smtp-sop.national.inria.fr with ESMTP; 20 Apr 2009 13:59:28 +0200 Received: from compute2.internal (compute2.internal [10.202.2.42]) by out1.messagingengine.com (Postfix) with ESMTP id 3B13E31E223; Mon, 20 Apr 2009 07:59:26 -0400 (EDT) Received: from heartbeat1.messagingengine.com ([10.202.2.160]) by compute2.internal (MEProxy); Mon, 20 Apr 2009 07:59:26 -0400 X-Sasl-enc: zInrV6I3d9uor8P7ISkLvbRJ/mi9o7LIWhV0ceD7jeN8 1240228765 Received: from [192.168.1.10] (ALyon-157-1-146-133.w90-42.abo.wanadoo.fr [90.42.153.133]) by mail.messagingengine.com (Postfix) with ESMTPSA id 6C392C16E; Mon, 20 Apr 2009 07:59:25 -0400 (EDT) Message-ID: <49EC62B6.1080003@ens-lyon.org> Date: Mon, 20 Apr 2009 13:55:34 +0200 From: Martin Jambon User-Agent: Thunderbird 2.0.0.17 (X11/20081008) MIME-Version: 1.0 To: Goswin von Brederlow Cc: Ashish Agarwal , caml-list@yquem.inria.fr Subject: Re: [Caml-list] Extending modules and signatures References: <49E9E195.6030603@ens-lyon.org> <49EBBC6C.8000502@ens-lyon.org> <873ac3x5it.fsf@frosties.localdomain> In-Reply-To: <873ac3x5it.fsf@frosties.localdomain> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Spam: no; 0.00; ens-lyon:01 ocaml:01 functors:01 wrote:01 signatures:01 caml-list:01 int:01 int:01 jambon:01 jambon:01 modules:02 modules:02 variables:02 variables:02 objects:02 Goswin von Brederlow wrote: > Which would also need > > module A1 = new module A > module A2 = new module A > A1.incr_x () > A1.get_x;; > - : int = 124 > A2.get_x ();; > - : int = 123 > > So you see A does not have global variables but only instance > variables. What you describe are ocaml objects. Not modules. The tiny difference is that objects may not contain type definitions. Functors do, but they don't support inheritance because all the private members are hidden behind the module interface. Martin -- http://mjambon.com/