A programming technique whICh aims to make programs more adaptable by making them more general. GenerIC programs often embody non-traditional kinds of polymorphism ordinary programs are obtained from them by suitably instantiating their parameters. In contrast with normal programs, the parameters of a generIC programs are often quite rICh in structure. For example they may be other programs, types or type constructors or even programming paradigms. (1997-11-22)