Руководство Agda по Индуктивные типы данных и соответствие шаблонов:
Для обеспечения нормализации индуктивные явления должны появляться в строго положительных позициях. Например, следующий тип данных не допускается:
data Bad : Set where bad : (Bad → Bad) → Bad
так как в аргументе конструктора есть отрицательное появление Bad.
Почему это требование необходимо для индуктивных типов данных?