Hi... I have a quick question. I want to extend the List module with various functions that I want that aren't present in the standard library, much as the Batteries ExtList library does.
I might write the following code in "mylibrary.ml": module MyList = struct include List let foo x = ... code here let bar y = ... code here end That's ok so far, but now suppose I want to write a "mylibrary.mli" interface file corresponding to "mylibrary.ml". Ideally I'd write something like this in "mylibrary.mli": module MyList : sig include List (* unknown module type List *) val foo : ... val bar : ... end Unfortunately I can't include "List" here since it is a structure, not a signature. I don't think there is a way to say "include the signature associated with List". I can think of three solutions: a) Copy the complete signature of List into MyList. This is a bad idea since the List module might change in the future. This is what the Batteries ExtList module does. b) Alter the List module to define a signature, say List.S, in addition to its other contents. I can't easily do this since I didn't write the List module. c) Don't write a .mli file at all. Are there any other alternatives? Cheers, Peter _______________________________________________ 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