если оперировать паттерном как объектом первого класса, то какой у него будет тип? допустим f :: [a] -> a; f (x :: xs) = x, тогда какой тип у паттерна x :: xs? 1/((x :: a) -> (xs :: [a]) -> [a])?
если убрать требование первого класса, то точно так же, как выражения — x : xs :: [a], призмы не нужны
Обсуждают сегодня