anchor.diff:  module Env = FStar.TypeChecker.Env
   
   (* These file provides implementation for reflection primitives in F*.
  - * 
  + *
    * Users can be exposed to (mostly) raw syntax of terms when working in
    * a metaprogramming effect (such as TAC). These effects are irrelevant
    * for runtime and cannot, of course, be used for proof (where syntax
  
positive.code:                     None Range.dummyRange
      | Unk ->
          ref_Unk
  
negative.code:                     [S.as_arg (embed_string_list nm);
                       S.as_arg (embed_term t)]
                      None Range.dummyRange
  
  let unembed_ctor (t:term) : ctor =
      let t = U.unascribe t in
      let hd, args = U.head_and_args t in
      match (U.un_uinst hd).n, args with
      | Tm_fvar fv, [(nm, _); (t, _)] when S.fv_eq_lid fv ref_Ctor_lid ->
          Ctor (unembed_string_list nm, unembed_term t)
      | _ ->
          failwith "not an embedded ctor"
  
  let embed_sigelt_view (sev:sigelt_view) : term =
      match sev with
  