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.4 required=5.0 tests=AWL,NO_REAL_NAME autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id 2B9E8BC69 for ; Tue, 12 Jun 2007 10:51:29 +0200 (CEST) Received: from triton.rz.uni-saarland.de (triton.rz.uni-saarland.de [134.96.7.25]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id l5C8pSnU017776 for ; Tue, 12 Jun 2007 10:51:28 +0200 Received: from uni-sb.de (uni-sb.de [134.96.7.230]) by triton.rz.uni-saarland.de (8.12.11.20060614/8.12.10) with ESMTP id l5C8pReI17325368 for ; Tue, 12 Jun 2007 10:51:27 +0200 (CEST) Received: from mail.cs.uni-sb.de (mail.cs.uni-sb.de [134.96.254.200]) by uni-sb.de (8.14.1/2007040500) with ESMTP id l5C8pR5x013325 for ; Tue, 12 Jun 2007 10:51:27 +0200 (CEST) Received: from mail.ps.uni-sb.de (james.ps.uni-sb.de [134.96.186.68]) by mail.cs.uni-sb.de (8.14.1/2007041300) with ESMTP id l5C8pQ4t011368 for ; Tue, 12 Jun 2007 10:51:27 +0200 (CEST) Received: from localhost ([127.0.0.1] helo=www.ps.uni-sb.de ident=oz-bugs) by mail.ps.uni-sb.de with esmtp (Exim 4.50) id 1Hy261-000333-Ni for caml-list@inria.fr; Tue, 12 Jun 2007 10:51:26 +0200 Received: from 84.165.181.142 (SquirrelMail authenticated user rossberg) by www.ps.uni-sb.de with HTTP; Tue, 12 Jun 2007 10:51:25 +0200 (CEST) Message-ID: <62136.84.165.181.142.1181638285.squirrel@www.ps.uni-sb.de> In-Reply-To: References: Date: Tue, 12 Jun 2007 10:51:25 +0200 (CEST) From: rossberg@ps.uni-sb.de To: caml-list@inria.fr User-Agent: SquirrelMail/1.4.4 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-SA-Exim-Connect-IP: 127.0.0.1 X-SA-Exim-Mail-From: rossberg@ps.uni-sb.de Subject: Re: [Caml-list] Recursive module signatures + functors X-SA-Exim-Version: 4.2 (built Thu, 03 Mar 2005 10:44:12 +0100) X-SA-Exim-Scanned: Yes (on mail.ps.uni-sb.de) X-DCC-CollegeOfNewCaledonia-Metrics: X-AntiVirus: checked by AntiVir Milter (version: 1.1.3-1; AVE: 7.4.0.32; VDF: 6.38.2.18; host: AntiVir2) X-Miltered: at concorde with ID 466E5E90.001 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; rossberg:01 recursive:01 functors:01 bug:01 checker:01 unify:01 bug:01 semantics:01 recursive:01 functors:01 sig:01 val:01 struct:01 wrote:01 rec:01 Michael Furr wrote: > > Is this a bug in the type checker or is there a reason that it does not > unify 't' and 'M.t'? It is not a bug, but a limitation of the current semantics of recursive modules. It is unrelated to functors - here is a simpler version of your example that fails in the same way: module rec M : sig type t val f : t -> t end = struct type t = int let f (x : M.t) = x end It's basically the same issue as described here: http://caml.inria.fr/pub/ml-archives/caml-list/2007/05/d9414d45a9a6f30f2609e08c43f011a0.en.html - Andreas