Каждый параметр метода может быть определен с некоторыми произвольными комплексными ограничениями или без них. Ограничения параметров применяются к аргументам родовой функции во время работы программы для определения того, какой именно метод должен принимать эти аргументы. Параметр может иметь два типа ограничений: ограничение типа и ограничение запросом. Ограничение типа содержит классы аргументов, которые может принимать параметр. Ограничение запросом является определенным пользователем условным выражением, которое должно удовлетвориться для аргументов в момент вызова функции. Совмещение ограничений и их сложность прямо влияет на скорость родового связывания.
Если параметр не имеет ограничений, это означает, что метод может принимать любые значения в качестве данного аргумента. Однако каждый метод родовой функции должен иметь определенные ограничения параметров, которые будут отличать его от других методов той же родовой функции. В противном случае, процесс родового связывания не сможет определить, какой именно метод необходимо вызывать. В случае если процесс родового связывания не смог подобрать соответствующий метод для некоторого набора аргументов, CLIPS сгенерирует ошибку.
Ограничение типа позволяет пользователю определить список типов (классов), один из которых должен соответствовать (или являться суперклассом) аргументу родовой функции. Если в используемой вами конфигурации CLIPS не установлен COOL, то в качестве ограничения типа будут доступны только следующие типы (классы): object, primitive, lexeme, symbol,
STRING, NUMBER, INTEGER, FLOAT, MULTIFIELD, FACT-ADDRESS И EXTERNAL-ADDRESS.
В гл. 11 все эти системные классы будут описаны подробно. Если COOL установлен, то, помимо перечисленных выше, будут доступны классы
INSTANCE, INSTANCE-ADDRESS, INSTANCE-NAME, USER, INITIAL-OBJECT, а также любой определенный пользователем класс. Родовая функция, которая использует только первую группу типов в своих методах, будет работать как с установленным COOL, так и без него. Классы, заданные в ограничении типа, должны быть определены до определения приоритета метода (см. разд. 10.4.2). CLIPS не поддерживает избыточность в списке ограничений типов аргументов методов. Например, для представленного ниже метода ограничения типов аргументов избыточны, т. к. класс integer — подкласс number.