Определения типов данных определены правильно, но это не тот способ, которым определяются функции в Agda. Хороший стартовый урок: Зависимые типы на работе
Функции определены со знаком равенства.
id : {A : Set} → A → A
id a = a
Более того, зависимый тип должен быть объявлен раньше, например, неявно или явно.
what_bottom : {A : Set} → Shish A → ...
Наконец, эту функцию нельзя определить с типом возврата Bool
. Он может иметь тип a
.