adding prefix operator type checking; some binop type checking
merging with head