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