be more careful with precedence
types keyword