anchor.diff:  
   let cfg_env cfg = cfg.tcenv
   
  -let add_steps (m : BU.psmap<primitive_step>) (l : list<primitive_step>) : BU.psmap<primitive_step> =
  -    List.fold_right (fun p m -> BU.psmap_add m (I.text_of_lid p.name) p) l m
  -
  -let prim_from_list (l : list<primitive_step>) : BU.psmap<primitive_step> =
  -    add_steps (BU.psmap_empty ()) l
  -
   let find_prim_step cfg fv =
       BU.psmap_try_find cfg.primitive_steps (I.text_of_lid fv.fv_name.v)
   
   let is_prim_step cfg fv =
       BU.is_some (BU.psmap_try_find cfg.primitive_steps (I.text_of_lid fv.fv_name.v))
  -
  -
   
   let log cfg f =
       if cfg.debug.gen then f () else ()
  
positive.code:     let pairs = BU.sort_with (fun (_, t1) (_, t2) -> t1 - t2) pairs in
      List.fold_right (fun (nm, ms) rest -> (BU.format2 "%sms --- %s\n" (fixto 10 (BU.string_of_int ms)) nm) ^ rest) pairs ""
  
  let mk_extendable_primop_list () =
    let steps = BU.mk_ref [] in
    let register (p:primitive_step) =
        steps := p :: !steps
    in
    let retrieve () = !steps
    in
    register, retrieve
  
  let plugins = mk_extendable_primop_list ()
  let extra_steps = mk_extendable_primop_list ()
  
  let register_plugin p = fst plugins p
  let retrieve_plugins () =
      if Options.no_plugins ()
      then []
      else snd plugins ()
  
  let register_extra_step p = fst extra_steps p
  let retrieve_extra_steps () = snd extra_steps ()
  
  let add_nbe s = // ZP : Turns nbe flag on, to be used as the default norm strategy
      if Options.use_nbe ()
  
negative.code:              ; print_normalized = Env.debug e (Options.Other "print_normalized_terms") };
       steps = to_fsteps s |> add_nbe ;
       delta_level = d;
       primitive_steps = steps;
       strong = false;
       memoize_lazy = true;
       normalize_pure_lets =
  