ECLiPSe has a sophisticated module concept which makes it possible to build large applications, avoid name clashes and to hide information from unauthorised access. The items covered by the module system's visibility rules are predicates, global variables and arrays, indexed database keys, operators and macro transformations.