support inferring the type of expressions.