added Assign and unary(Cast)
Call in typeInfer still broken