BTW, we have `AbstractExpressionEvaluator`, who provides desired logic, but IMO it will be very overhead to use it everywhere we have `Expression`