Когда я пытаюсь сопоставить образ GADT в синтаксисе proc (с Netwire и Vinyl):
sceneRoot = proc inputs -> do
let (Identity camera :& Identity children) = inputs
returnA -< (<*>) (map (rGet draw) children) . pure
Я получаю (скорее нечетную) ошибку компилятора, из ghc-7.6.3
My brain just exploded
I can't handle pattern bindings for existential or GADT data constructors.
Instead, use a case-expression, or do-notation, to unpack the constructor.
In the pattern: Identity cam :& Identity childs
Я получаю аналогичную ошибку, когда я помещаю шаблон в шаблон proc (...). Почему это? Это необоснованно или просто не реализовано?