T16512a.hs:41:25: error: • Couldn't match type: ListVariadic as (a -> b) with: a -> ListVariadic as b Expected: AST (ListVariadic (a : as) b) Actual: AST (ListVariadic as (a -> b)) • In the first argument of ‘AnApplication’, namely ‘g’ In the expression: AnApplication g (a `ConsAST` as) In a case alternative: AnApplication g as -> AnApplication g (a `ConsAST` as) • Relevant bindings include as :: ASTs as (bound at T16512a.hs:40:25) g :: AST (ListVariadic as (a -> b)) (bound at T16512a.hs:40:23) a :: AST a (bound at T16512a.hs:38:15) f :: AST (a -> b) (bound at T16512a.hs:38:10) unapply :: AST b -> AnApplication b (bound at T16512a.hs:38:1)