aihc-parser-1.0.0.2: test/Test/Fixtures/golden/module/instance-parenthesized-head-multiline.yaml
extensions: []
input: |
module ParenthesizedInstanceHead where
import qualified Data.List as List
class Collect a where
collect :: a -> [a]
data Box a = Box a
instance
Eq a
=> (Collect (Box a))
where
collect value = List.reverse [value]
status: pass
ast: |-
Module {ModuleHead {"ParenthesizedInstanceHead"}, [ImportDecl {"Data.List", True, "List"}], [DeclClass (ClassDecl {Prefix "Collect" [TyVarBinder {"a"}], [ClassItemTypeSig {[UnqualifiedName {"collect"}], TFun (TVar "a") (TList [TVar "a"])}]}), DeclData (DataDecl {Prefix "Box" [TyVarBinder {"a"}], [PrefixCon {UnqualifiedName {"Box"}, [BangType {TVar "a"}]}]}), DeclInstance (InstanceDecl {[TApp (TCon "Eq") (TVar "a")], TParen (TApp (TCon "Collect") (TParen (TApp (TCon "Box") (TVar "a")))), [InstanceItemBind (FunctionBind "collect" [Match {MatchHeadPrefix, [PVar "value"], EApp (EVar "List" "reverse") (EList [EVar "value"])}])]})]}