adding typeclasses for Expr and Pred