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
[Caml-list] Why not 'include' in an .mli file?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2004-04-14 (16:41)
From: Richard Jones <rich@a...>
Subject: [Caml-list] Why not 'include' in an .mli file?

I have a library which for various reasons is split into two modules,
called them Analysis_p and Analysis.

I want end-user programs to be able to 'open Analysis', and get all
the symbols from both modules.  This is simple enough using the
'include' directive:

analysis.ml:	include Analysis_p
		(* plus a few extra functions *)

However when I added an analysis.mli file, I found that I could not
automatically 'include' symbols from Analysis_p.  The following
doesn't work:

analysis.mli:	include Analysis_p
		(* plus a few extra prototypes *)

ocamlc -w s -g -I +pcre -I +postgres -I +dbi -c analysis.mli
File "analysis.mli", line 1, characters 8-24:
Unbound module type Analysis_p

Instead it seems, as far as I can see, that I have to list out all the
prototypes again in analysis.mli.  Is this so?  If so, it's a pain for
me, and means that prototypes for one function exist in two different
places (also I don't control Analysis_p directly, so it requires extra


Richard Jones. http://www.annexia.org/ http://www.j-london.com/
Merjis Ltd. http://www.merjis.com/ - improving website return on investment
MAKE+ is a sane replacement for GNU autoconf/automake. One script compiles,
RPMs, pkgs etc. Linux, BSD, Solaris. http://www.annexia.org/freeware/makeplus/

To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners