anchor.diff:  
         mktac1 0 "trivial"       trivial e_unit e_unit
                                  trivial NBET.e_unit NBET.e_unit;
  -      (* mktac2 1 "__trytac"      (fun _ -> trytac) e_any (e_tactic_0' e_any) (e_option e_any) *)
  -      (*                          (fun _ -> trytac) NBET.e_any ? (NBET.e_option NBET.e_any); *)
  +
  +      mktac2 1 "__trytac"      (fun _ -> trytac) e_any (e_tactic_0 e_any) (e_option e_any)
  +                               (fun _ -> trytac) NBET.e_any (e_tactic_nbe_0 NBET.e_any) (NBET.e_option NBET.e_any);
  +
         mktac1 0 "intro"         intro e_unit RE.e_binder
                                  intro NBET.e_unit NRE.e_binder;
   
         mktac1 0 "intro_rec"     intro_rec e_unit (e_tuple2 RE.e_binder RE.e_binder)
                                  intro_rec NBET.e_unit (NBET.e_tuple2 NRE.e_binder NRE.e_binder);
                                 
  -      (* mktac1 0 "norm"          norm (e_list e_norm_step) e_unit *)
  -      (*                          norm (NBET.e_list NBET.e_norm_step) NBET.e_unit; *)
  -
  -      (* mktac3 0 "norm_term_env" norm_term_env RE.e_env (e_list e_norm_step) RE.e_term RE.e_term; *)
  -      (* mktac2 0 "norm_binder_type" *)
  -      (*                          norm_binder_type (e_list e_norm_step) RE.e_binder e_unit; *)
  +      mktac1 0 "norm"          norm (e_list e_norm_step) e_unit
  +                               norm (NBET.e_list NBET.e_norm_step) NBET.e_unit;
  +
  +      mktac3 0 "norm_term_env" norm_term_env RE.e_env (e_list e_norm_step) RE.e_term RE.e_term
  +                               norm_term_env NRE.e_env (NBET.e_list NBET.e_norm_step) NRE.e_term NRE.e_term;
  +
  +      mktac2 0 "norm_binder_type"
  +                               norm_binder_type (e_list e_norm_step) RE.e_binder e_unit
  +                               norm_binder_type (NBET.e_list NBET.e_norm_step) NRE.e_binder NBET.e_unit;
  +
         mktac2 0 "rename_to"     rename_to RE.e_binder e_string e_unit
                                  rename_to NRE.e_binder NBET.e_string NBET.e_unit;
   
  
positive.code:       mktac1 0 "apply_lemma"   apply_lemma RE.e_term e_unit
                                 apply_lemma NRE.e_term NBET.e_unit;
  
        (* mktac5 2 "__divide"      (fun _ _ -> divide) e_any e_any e_int (e_tactic_0' e_any) (e_tactic_0' e_any) (e_tuple2 e_any e_any) *)
        (*                          (fun _ _ -> divide) NBET.e_any NBET.e_any NBET.e_int (e_tactic_0' e_any) (e_tactic_0' e_any) (e_tuple2 e_any e_any); *)
  
        (* mktac2 0 "__seq"         seq (e_tactic_0' e_unit) (e_tactic_0' e_unit) e_unit *)
        (*                          seq (e_tactic_0' e_unit) (e_tactic_0' e_unit) e_unit; *)
  
        mktac1 0 "set_options"   set_options e_string e_unit
                                 set_options NBET.e_string NBET.e_unit;
  
negative.code: 
  let tacdbg = BU.mk_ref false
  
  // IN F*: let rec e_tactic_0 (#r:Type) (er : embedding r) : embedding (tac r)
  let rec e_tactic_0 (er : embedding<'r>) : embedding<tac<'r>> // JUST FSHARP
      =
      mk_emb (fun _ _ -> failwith "Impossible: embedding tactic (0)?")
             (fun w t -> Some <| unembed_tactic_0 er t)
             S.t_unit // never used
  
  // IN F*: and e_tactic_1 (#a:Type) (#r:Type) (ea : embedding a) (er : embedding r) : embedding (a -> tac r)
  and e_tactic_1 (ea : embedding<'a>) (er : embedding<'r>) : embedding<('a -> tac<'r>)> // JUST FSHARP
      =
      mk_emb (fun _ _ -> failwith "Impossible: embedding tactic (1)?")
             (fun w t -> unembed_tactic_1 ea er t)
             S.t_unit // never used
  
  // IN F*: and e_tactic_nbe_0 (#r:Type) (er : NBET.embedding r) : NBET.embedding (tac r)
  and e_tactic_nbe_0 (er : NBET.embedding<'r>) : NBET.embedding<tac<'r>> // JUST FSHARP
      =
      NBETerm.mk_emb
             (fun _ -> failwith "Impossible: NBE embedding tactic (0)?")
             (fun t -> Some <| unembed_tactic_nbe_0 er t)
             (NBET.Constant NBET.Unit)
  
  // IN F*: and e_tactic_nbe_1 (#a:Type) (#r:Type) (ea : NBET.embedding a) (er : NBET.embedding r) : NBET.embedding (a -> tac r)
  and e_tactic_nbe_1 (ea : NBET.embedding<'a>) (er : NBET.embedding<'r>) : NBET.embedding<('a -> tac<'r>)> // JUST FSHARP
      =
      NBETerm.mk_emb
             (fun _ -> failwith "Impossible: NBE embedding tactic (1)?")
             (fun t -> unembed_tactic_nbe_1 ea er t)
             (NBET.Constant NBET.Unit)
  
  and primitive_steps () : list<Cfg.primitive_step> =
      (* NB: We need a PRECISE number for the universe arguments or NBE will
  