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 4CFDABB84 for ; Fri, 26 Sep 2008 02:08:33 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjADAHLF20gjCUtyiGdsb2JhbACTHwEBARUioHAShkY8gWU X-IronPort-AV: E=Sophos;i="4.33,309,1220220000"; d="scan'208";a="15358490" Received: from discorde.inria.fr ([192.93.2.38]) by mail2-smtp-roc.national.inria.fr with ESMTP; 26 Sep 2008 02:08:33 +0200 Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by discorde.inria.fr (8.13.6/8.13.6) with ESMTP id m8Q08Wg8003588 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=OK) for ; Fri, 26 Sep 2008 02:08:33 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjADAHLF20gjCUtyiGdsb2JhbACTHwEBARUioHAShkY8gWU X-IronPort-AV: E=Sophos;i="4.33,309,1220220000"; d="scan'208";a="15358488" Received: from sys14.mail.msu.edu ([35.9.75.114]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 26 Sep 2008 02:08:26 +0200 Received: from c-98-209-60-49.hsd1.mi.comcast.net ([98.209.60.49] helo=[192.168.1.4]) by sys14.mail.msu.edu with esmtpsa (Exim 4.63 #1) (TLSv1:AES256-SHA:256) id 1Kj0si-0004vH-Li for caml-list@inria.fr; Thu, 25 Sep 2008 20:08:24 -0400 Message-ID: <48DC27F4.8000902@msu.edu> Date: Thu, 25 Sep 2008 20:08:20 -0400 From: Jeff Shaw User-Agent: Thunderbird 2.0.0.16 (Windows/20080708) MIME-Version: 1.0 To: caml-list@inria.fr Subject: Re: mutually dependent class and type References: <48DC26C0.8000505@msu.edu> In-Reply-To: <48DC26C0.8000505@msu.edu> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus: None found by Clam AV X-Miltered: at discorde with ID 48DC2800.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; semi-colon:01 wrote:01 variant:02 variant:02 data:02 data:02 string:02 string:02 element:03 element:03 let:03 dependent:04 redundant:05 mutually:06 function:08 I'm more sick than I thought. content_of_variant should have been variant_of_content, and I forgot to delete the double redundant semi-colon. Jeff Shaw wrote: > I don't know how you might directly get what you want, but here's one > way to get an equivalent result. > > class element_aux (c : [`Data of string | `Element of element list]) = > object end > > type content = Data of string | Element of element list;; > > let content_of_variant = function Data d -> `Data d | Element e -> > `Element e > > class element (c : content) = element_aux (content_of_variant c) >