English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

Browse thread
Mutually recursive types in different modules
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2008-07-14 (17:47)
From: Martin Jambon <martin.jambon@e...>
Subject: Re: [Caml-list] Mutually recursive types in different modules
On Mon, 14 Jul 2008, Andre Nathan wrote:

> Hello
> Say I have the following type definition:
>  type a = { x: int; foo: b } and  b = { y: int; bar: a }
> Is it possible to define types a and b in their own files (thus in
> modules A and B) and still allow them to be mutually recursive?

The usual way to proceed is to use one file for the type definitions and 
as many files as you want for the implementation.

If after that you want to make the types abstract for external use, you 
can use the -pack option of ocamlc or ocamlopt. It lets you define a 
super module with its own .mli file.