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 mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by yquem.inria.fr (Postfix) with ESMTP id 68F7CBBAF for ; Thu, 10 Jul 2008 01:32:14 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApsEAIzndEjAXQIm/2dsb2JhbACSF5h7hiw X-IronPort-AV: E=Sophos;i="4.30,333,1212357600"; d="scan'208";a="27181466" Received: from discorde.inria.fr ([192.93.2.38]) by mail4-smtp-sop.national.inria.fr with ESMTP; 10 Jul 2008 01:32:13 +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 m69NWCEh015894 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=OK) for ; Thu, 10 Jul 2008 01:32:13 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjsBANjmdEhKfS4dd2dsb2JhbACSF0MBDAMEBAkRA5gRhiw X-IronPort-AV: E=Sophos;i="4.30,333,1212357600"; d="scan'208";a="12979396" Received: from yw-out-2324.google.com ([74.125.46.29]) by mail2-smtp-roc.national.inria.fr with ESMTP; 10 Jul 2008 01:32:12 +0200 Received: by yw-out-2324.google.com with SMTP id 5so1403746ywh.27 for ; Wed, 09 Jul 2008 16:32:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:date:message-id:from:to :subject:user-agent:mime-version:content-type; bh=cF0c3rgN3TEu4WVLfcM5OBP5DWzijQ9e6LKy/UVZ44M=; b=m2rE/5/DdqfnOvGC7MuQC9q/u3CoBlCBW6/9fbxtjaLdlRc7YbkRcPEI6ykIn2FHEV XFYQjlp2BuTig1JUmQBOA78Zlb0UFLaWHU4JvsNDDc96OrfWBtw2o7pXMFc7cr3s9duM kUv3yqmVEdGb/SZ5c95gv9FA/Q10F71y6WxOo= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=date:message-id:from:to:subject:user-agent:mime-version :content-type; b=KPFvtiF1Q83Jkg6ix5jTaJqZ7RaJrbKGr6nA2k/sxwmzy8QkVaItLA2+nqvI4RjyeY FS6yVMFPi82glAgVzssNZhZN2638sf+h8GhgKTEdLV8kT/p7jEkUXiwUQOyUv1d/MY7+ TV5Z4WGPpTeFfjMUse1/MvGprjVkv313rDnbk= Received: by 10.151.45.6 with SMTP id x6mr13282667ybj.180.1215646331868; Wed, 09 Jul 2008 16:32:11 -0700 (PDT) Received: from moai.gmail.com ( [66.108.51.129]) by mx.google.com with ESMTPS id 4sm9263870yxq.8.2008.07.09.16.32.10 (version=TLSv1/SSLv3 cipher=RC4-MD5); Wed, 09 Jul 2008 16:32:11 -0700 (PDT) Date: Wed, 09 Jul 2008 19:32:43 -0400 Message-ID: <87abgqbplw.wl%jun.furuse@gmail.com> From: Jun Furuse To: caml-list@inria.fr Subject: Recursive module and class User-Agent: Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL/10.7 Emacs/21.4 (i486-pc-linux-gnu) MULE/5.0 (SAKAKI) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII X-Miltered: at discorde with ID 48754A7C.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; furuse:01 furuse:01 recursive:01 recursive:01 ocamlc:01 abbrevs:01 sig:01 foo:01 struct:01 foo:01 sig:01 struct:01 mismatch:01 bug:01 rec:01 Hi, Sorry if the following is already well known issue. The following program trying to define a type and a class mutually recursive is rejected by ocamlc (3.11+dev12 Private_abbrevs+natdynlink (2008-02-29)): module rec M : sig type t = Foo of N.c end = struct type t = Foo of N.c end and N : sig class c : object method x : M.t end end = struct class c = object (self) method x = M.Foo (self :> c) end end The error message is puzzling: Error: Signature mismatch: Modules do not match: sig class c : object method x : M.t end end is not included in sig class c : object method x : M.t end end Type declarations do not match: type c = N.c is not included in type c = < x : M.t > These signatures are literaly same, but do not match. The above code is compiled if I write method x = M.Foo (self :> N.c) to coerce the object to the outer class N.c instead of c. Is it a bug of typing? Or it is ok but I was just confused by the error message ? -- Jun FURUSE