The following predicates can be used to query the module system for
reflexive programming:
- [nondet]current_module(?Module)
-
True if Module is a currently defined module. This predicate
enumerates all modules, whether loaded from a file or created
dynamically. Note that modules cannot be destroyed in the current
version of SWI-Prolog.
- module_property(?Module,
?Property)
-
True if Property is a property of Module. Defined
properties are:
- file(?File)
-
True if Module was loaded from File.
- line_count(-Line)
-
True if Module was loaded from the N-th line of file.
- exports(-ListOfPredicateIndicators)
-
True if Module exports the given predicates. Predicate
indicators are in canonical form (i.e., always using Name/Arity and
never the DCG form Name//Arity). Future versions may also use the DCG
form and include public operators. See also
predicate_property/2.