import prelude ; data Cat : Type where { Conj : Cat ; NP : Cat ; S : Cat ; V2 : Cat } ; data Tree : Cat -> Type where { And : Tree Conj ; Bill : Tree NP ; ConjNP : Tree Conj -> Tree NP -> Tree NP -> Tree NP ; John : Tree NP ; Mary : Tree NP ; Or : Tree Conj ; PredV2 : Tree V2 -> Tree NP -> Tree NP -> Tree S ; ReflV2 : Tree V2 -> Tree NP -> Tree S ; See : Tree V2 ; Whip : Tree V2 } ; derive Eq Tree ; derive Compos Tree ;