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.2 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 mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by yquem.inria.fr (Postfix) with ESMTP id 09695BB84 for ; Sat, 24 May 2008 00:02:24 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArwBALvbNkjAXQImiGdsb2JhbACSOQEBAQ8gljGGBQ X-IronPort-AV: E=Sophos;i="4.27,532,1204498800"; d="scan'208";a="12639777" Received: from discorde.inria.fr ([192.93.2.38]) by mail1-smtp-roc.national.inria.fr with ESMTP; 24 May 2008 00:02:23 +0200 Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by discorde.inria.fr (8.13.6/8.13.6) with ESMTP id m4NM2Nag003903 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=OK) for ; Sat, 24 May 2008 00:02:23 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AtcDAC/cNkjRVcipZGdsb2JhbACSLBoDBAQJDgaWL4YG X-IronPort-AV: E=Sophos;i="4.27,532,1204498800"; d="scan'208";a="26557231" Received: from wf-out-1314.google.com ([209.85.200.169]) by mail4-smtp-sop.national.inria.fr with ESMTP; 24 May 2008 00:02:08 +0200 Received: by wf-out-1314.google.com with SMTP id 25so771842wfa.0 for ; Fri, 23 May 2008 15:02:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; bh=P/kKGHHk17t7QB5f3KiQgvZyWFVDJLpJpH0EVyLgTUA=; b=kmHG2BPGHS9OmqWLTcWLLv3RSCL6vzIKg7O5phsjPRSY8C2+tsGClAa5riWSb1qZ95VTySdYDXXO7R65HI6BDY0cdAPyueSzX1QG/u8A+R3bOM7g5zruMfxJwXDkhmsirtJCBHUS4jovzP8bF32S8Fe/kl+gneYTCEK6Gg0X+CM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=CyLg9G23Re805ThSfOBSKHyqbgmEYTBUDPTuFEnenLk2jyjcl/6scFOzNV0y/RwrKULSluN/5pLIAYIvC0erdGI8P7IIg+r4s6+Py5qi26wBPSMvtPASX+M+BoEAUcn+JDwrEftLV5pme2KI6d2cIPBl71Z6zCrPjEWK6a10r2c= Received: by 10.143.33.12 with SMTP id l12mr813949wfj.263.1211580126971; Fri, 23 May 2008 15:02:06 -0700 (PDT) Received: by 10.143.161.19 with HTTP; Fri, 23 May 2008 15:02:06 -0700 (PDT) Message-ID: <9d3ec8300805231502r2211b972l849128ac4ab50478@mail.gmail.com> Date: Fri, 23 May 2008 23:02:06 +0100 From: "Till Varoquaux" To: "Fabrice Marchant" Subject: Re: [Caml-list] A functor to produce recursive modules ? Cc: caml-list@inria.fr In-Reply-To: <20080523214205.769b7788@orange.fr> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <20080522225830.52208601@orange.fr> <483661D2.9040301@frisch.fr> <20080523214205.769b7788@orange.fr> X-Miltered: at discorde with ID 48373EEF.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; functor:01 recursive:01 bug:01 ocaml's:01 ocaml:01 bug:01 recursive:01 orderedtype:01 struct:01 sig:01 sig:01 elt:01 elt:01 struct:01 ocaml:01 This is most definitely a bug in OCaml's type system. Ocaml is amazingly robust but when you start using more exotic features bugs occure ;-). You should fill in a bug report at: caml.inria.fr/mantis Till On Fri, May 23, 2008 at 8:42 PM, Fabrice Marchant wrote: > However, even if the method is clear, I run into problems trying to apply it on these 2 recursive modules : > map to sets and a set of map to sets. > > module F ( X : Set.OrderedType ) = struct > module rec Mod : sig > module XSet : > sig > type elt = X.t > type t = Set.Make( X ).t > end > module XMap : > sig > type key = X.t > type 'a t = 'a Map.Make( X ).t > end > type elt = X.t > type t = XSet.t XMap.t > end > = > struct > module XSet = Set.Make( X ) > module XMap = Map.Make( X ) > > type elt = X.t > type t = XSet.t XMap.t > end > and ModSet : Set.S with type elt = Mod.t = Set.Make( Mod ) > end > > Got this internal message from ocaml 3.10.1 : > "Fatal error: exception Assert_failure("typing/path.ml", 48, 22)" > > Maybe should the a' type be declared (as XSet.t) ? > > Any light ? > > Fabrice > > _______________________________________________ > Caml-list mailing list. Subscription management: > http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list > Archives: http://caml.inria.fr > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs > -- http://till-varoquaux.blogspot.com/