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,DNS_FROM_RFC_ABUSE 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 49C29BC6B for ; Tue, 18 Sep 2007 09:53:12 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgAAALog70bAXQImn2dsb2JhbACOEAICBwQGBwgY X-IronPort-AV: E=Sophos;i="4.20,267,1186351200"; d="scan'208";a="953225" Received: from discorde.inria.fr ([192.93.2.38]) by mail1-smtp-roc.national.inria.fr with ESMTP; 18 Sep 2007 09:54:11 +0200 Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by discorde.inria.fr (8.13.6/8.13.6) with ESMTP id l8I7rYLY022841 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=OK) for ; Tue, 18 Sep 2007 09:53:35 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ao8CAPYg70aCNhAB/2dsb2JhbAA X-IronPort-AV: E=Sophos;i="4.20,267,1186351200"; d="scan'208";a="2848751" Received: from kurims.kurims.kyoto-u.ac.jp ([130.54.16.1]) by mail3-smtp-sop.national.inria.fr with ESMTP; 18 Sep 2007 09:54:08 +0200 Received: from localhost (orion [130.54.16.5]) by kurims.kurims.kyoto-u.ac.jp (8.13.8/8.13.8) with ESMTP id l8I7s3kR017181; Tue, 18 Sep 2007 16:54:03 +0900 (JST) Date: Tue, 18 Sep 2007 16:53:54 +0900 (JST) Message-Id: <20070918.165354.267963120.garrigue@math.nagoya-u.ac.jp> To: baguasquirrel@gmail.com Cc: caml-list@inria.fr Subject: Re: [Caml-list] Mutually recursive functions in different modules From: Jacques Garrigue In-Reply-To: <74cabd9e0709172327g42d34407wc7027db6d8c6fba6@mail.gmail.com> References: <74cabd9e0709172327g42d34407wc7027db6d8c6fba6@mail.gmail.com> X-Mailer: Mew version 4.2 on Emacs 22.1 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Miltered: at discorde with ID 46EF83FE.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; recursive:01 recursive:01 functors:01 recursion:01 compilation:01 caml-list:01 functions:01 functions:01 modules:02 modules:02 garrigue:03 garrigue:03 module:03 module:03 jacques:03 From: "Arthur Chan" > Is it possible to have mutually recursive functions in separate modules? > > For example, is it possible for function x in module A to call function y in > module B and vice versa? > > The reason why I'm asking is because I've written a good bit of my code with > functors, and now I need to make some of the code mutually recursive, and > thus, the mutually recursive functions have to be in separate modules. Recursive modules are available. See the "language extensions" section of the reference manual. (Note that this is about exactly what you asked, i.e. recursive modules, not recursion between compilation units.) Jacques Garrigue