Вот как n + k шаблонов определены для работы:
Сопоставление шаблона n + k (где n - это переменная, а k - положительный целочисленный литерал) со значением v завершается успешно, если x> = k, что приводит к привязке n к x - k, а в противном случае не удается. 1006 *
Смысл n + k шаблонов состоит в том, чтобы выполнить индукцию, поэтому вам нужно завершить пример базовым регистром (k-1 или 0 в этом случае) и решить, будет ли параметр меньше этого значения ошибочным или нет. Как это:
example (n+1) = ...
example 0 = ...
Семантика, которую вы, по сути, запрашиваете, была бы довольно бессмысленной и избыточной - вы могли бы просто сказать
example n = let n' = n-1 in ...
для достижения того же эффекта. Смысл паттерна в том, чтобы иногда терпеть неудачу.