Modules created with the module/1 directive automatically import the module eclipse_language, which provides the standard set of ECLiPSe built-in predicates. To create a module that uses a different language dialect, use module/3. For instance
:- module(mystdcode, [], iso).creates a module in which you can use ISO Standard Prolog7.5, but not all of ECLiPSe's usual language features. Note that the third argument (here iso) simply specifies a library which implements the desired language, so new languages can be added easily.
:- spy(p/3)@othermod.Once a module implementation is stable and there is a need for privacy, it is possible to lock a module. Locking makes it impossible to access internal, local items from outside the module. Of course, the module can still be used though its interface. The built-in predicates related to locking are lock/1 which provides a definitive lock, lock/2 which allows subsequent unlocking using a password ( unlock/2), and get_module_info/3 which allows to check whether a module is locked.