Когда я пытаюсь сопоставить образ 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 (...)
. Почему это? Это необоснованно или просто не реализовано?