method pp_term fmt = function
| Tvar x -> self#pp_var fmt x
| Ttrue -> self#pp_term_true fmt
| Tfalse -> self#pp_term_false fmt
| Tint z -> self#pp_term_int fmt z
| Treal z -> self#pp_term_real fmt z
| Tcall(f,ts) -> self#pp_term_call fmt f ts
| Tprim(pi,ts) -> self#pp_term_primitive fmt pi ts
| Tgetfield(r,f) -> self#pp_term_getfield fmt r f
| Tsetfield(r,f,v) -> self#pp_term_setfield fmt r f v
| Taccess(r,k) -> self#pp_term_access fmt r k
| Tupdate(r,k,v) -> self#pp_term_update fmt r k v
| Tlet(x,a,b) -> self#pp_term_let fmt x a b
| Tif(c,a,b) -> self#pp_term_cond fmt c a b