This will load the library file unless it has been already loaded. In particular, a program can ensure that a given library is loaded when it is compiled, by including an appropriate directive in the source, e.g. :- lib(lists).:- lib(lists) :- use_module(library(lists))