visitor pattern for AST
removing pred_is* functions
removed unused pred* functions