haskell: messing with syntax trees for proof language