let label f a x =
  if Wp_parameters.Trace.get () then
    match a with
      | Here | Pre | Post | Exit -> x
      | LabelParam label ->
          (*TODO [LC] see mk_logic_label and loop_head_label *)
          if has_prefix "wp!" label
          then x
          else f label x
      | CallAt sid ->
          if Wp_parameters.debug_atleast 1
          then f (Printf.sprintf "Call%d" sid) x else x
      | At(labels,sid) ->
          List.fold_left
            (fun x label -> f label x)
            (if Wp_parameters.debug_atleast 1
             then f (Printf.sprintf "Stmt%d" sid) x else x)
            labels
  else x