Ответ 1
Идрис не имеет шаблонов, точно так же, как в haskell. Существует предложение с, которое синтаксически похоже (но более мощное, поскольку оно поддерживает сопоставление в присутствии зависимых типов):
containsTen : Num a => List a -> Bool
containsTen (x :: y :: xs) with (x + y)
| 10 = True
| _ = False
Вы можете посмотреть Idris tutorial раздел 7 просмотров и правило "с" .