static type inference