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.0 required=5.0 tests=none autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by yquem.inria.fr (Postfix) with ESMTP id 1ABCFBB84 for ; Fri, 26 Sep 2008 00:24:42 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArQCANis20jUGyokmmdsb2JhbACBXooPAYcxAQEBAQEICwoHEQOobIFl X-IronPort-AV: E=Sophos;i="4.33,309,1220220000"; d="scan'208";a="15356877" Received: from smtp6-g19.free.fr ([212.27.42.36]) by mail2-smtp-roc.national.inria.fr with ESMTP; 26 Sep 2008 00:24:41 +0200 Received: from smtp6-g19.free.fr (localhost.localdomain [127.0.0.1]) by smtp6-g19.free.fr (Postfix) with ESMTP id AB91C19799 for ; Fri, 26 Sep 2008 00:24:41 +0200 (CEST) Received: from galois.homeunix.org (bne75-7-82-230-122-37.fbx.proxad.net [82.230.122.37]) by smtp6-g19.free.fr (Postfix) with ESMTP id 938811970C for ; Fri, 26 Sep 2008 00:24:40 +0200 (CEST) Received: from evariste by galois.homeunix.org with local (Exim 4.69) (envelope-from ) id 1KizGJ-00024p-2c for caml-list@yquem.inria.fr; Fri, 26 Sep 2008 00:24:39 +0200 Date: Fri, 26 Sep 2008 00:24:39 +0200 From: =?iso-8859-1?Q?S=E9bastien?= Hinderer To: caml-list@yquem.inria.fr Subject: mutually dependent class and type Message-ID: <20080925222439.GA7968@galois> Mail-Followup-To: caml-list@yquem.inria.fr MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit X-Spam: no; 0.00; ens-lyon:01 recursive:01 ocaml:01 data:02 define:02 string:02 element:03 element:03 dependent:04 mutually:06 mutually:06 definition:07 object:09 sebastien:09 sebastien:09 Dear list, Is there a (clean) way to define simultaneously a class and a type that are mutually recursive ? Something like this : class element (c : content) = object ... end and type content = | Data of string | Elements of element list;; This is of course not a valid OCaml definition, but is there a way to express it ? Many thanks in advance for your help, Sébastien.