ECLiPSe provides the user with the metaterm data type which is the key to many extensions to the basic Prolog language. It can be seen as a generic data type or as an attributed variable. The system calls user-definable event handlers when it encounters metaterms in certain contexts, e.g. unification.