let coerce_to_boolean (e1 : expr) = if not (is_numeric e1) && not (is_pointer_nonnull e1) then raise (TypeError_typed(e1,"not a boolean value")) else e1