Reusing eval-expr in 'if' and 'while', better support for double type