anchor.diff:  
   
   let encode_top_level_val uninterpreted env lid t quals =
  -    let tt = norm env t in
  +    let tt = norm_before_encoding env t in
   //        if Env.debug env.tcenv <| Options.Other "SMTEncoding"
   //        then Printf.printf "Encoding top-level val %s : %s\Normalized to is %s\n"
   //            (Print.lid_to_string lid)
  
positive.code:           bindings |> List.fold_left (fun (toks, typs, decls, env) lb ->
              (* some, but not all are lemmas; impossible *)
              if U.is_lemma lb.lbtyp then raise Let_rec_unencodeable;
              let t_norm = whnf env lb.lbtyp in
              (* We are declaring the top_level_let with t_norm which might contain *)
              (* non-reified reifiable computation type. *)
              (* TODO : clear this mess, the declaration should have a type corresponding to *)
  
negative.code:             i+1, decls@g, env'
  
          | S.Binding_lid(x, (_, t)) ->
              let t_norm = norm_before_encoding env t in
              let fv = S.lid_as_fv x delta_constant None in
  //            Printf.printf "Encoding %s at type %s\n" (Print.lid_to_string x) (Print.term_to_string t);
              let g, env' = encode_free_var false env fv t t_norm [] in
  