method term_atomic = function
| Tint s | Treal s -> not ( String.length s > 0 && s.[0] = '-' )
| Tvar _ | Tcall _ | Tprim(_,[]) | Ttrue | Tfalse -> true
| Tprim(pi,_) -> operator_atomic (self#term_operator pi)
| Tgetfield _ -> true
| Tsetfield _ -> true
| Taccess _ -> true
| Tupdate _ -> true
| Tif _ -> false
| Tlet _ -> false