method pp_tau fmt = function
    | Integer -> self#pp_tau_int fmt
    | Real -> self#pp_tau_real fmt
    | Boolean -> self#pp_tau_bool fmt
    | Pointer -> self#pp_tau_pointer fmt
    | Set te -> self#pp_tau_set fmt te
    | Array(ta,tb) -> self#pp_tau_array fmt ta tb
    | Record r -> self#pp_tau_record fmt r
    | ADT(a,ts) -> self#pp_tau_adt fmt a ts
    | ALPHA n -> self#pp_tau_alpha fmt n