def's tag is Var not it's init tag
we can't safely infer tha tag of a dynamic var, it may change over time
don't add :tag nil in if expressions
infer 'do tag