import prelude ; data Cat : Type where { Conj : Cat ; NP : Cat ; S : Cat ; VP : Cat } ; data Tree : Cat -> Type where { And : Tree Conj ; Bill : Tree NP ; ConjNP : Tree Conj -> Tree NP -> Tree NP -> Tree NP ; ConjS : Tree Conj -> Tree S -> Tree S -> Tree S ; ConjVP : Tree Conj -> Tree VP -> Tree VP -> Tree VP ; John : Tree NP ; Mary : Tree NP ; Or : Tree Conj ; Pred : Tree NP -> Tree VP -> Tree S ; Run : Tree VP ; Swim : Tree VP ; Walk : Tree VP } ; derive Eq Tree ; derive Compos Tree ;