method pp_pred_let fmt x a p =
    self#binder x 
      (fun bind ->
         Format.fprintf fmt "@[<hv 2>let %a = %a in@ @]%a"
           self#pp_binder bind
           self#pp_term a
           (self#with_binder bind self#pp_pred) p)