anchor.diff:   | Arg      of closure * aqual * Range.range
    | UnivArgs of list<universe> * Range.range
    | MemoLazy of memo<(env * term)>
  - | Match    of env * branches * Range.range
  + | Match    of env * branches * cfg * Range.range
    | Abs      of env * binders * env * option<residual_comp> * Range.range //the second env is the first one extended with the binders, for reducing the option<lcomp>
    | App      of env * term * aqual * Range.range
    | Meta     of S.metadata * Range.range
  
positive.code:     let r_env = Env.set_range cfg.tcenv (S.range_of_fv f) in
      match Env.lookup_definition_qninfo cfg.delta_level f.fv_name.v qninfo with
         | None ->
           log cfg (fun () -> BU.print "Tm_fvar case 2\n" []) ;
           rebuild cfg env stack t0
  
         | Some (us, t) ->
  
negative.code:             end
  
            | Tm_match(head, branches) ->
              let stack = Match(env, branches, cfg, t.pos)::stack in
              let cfg = { cfg with steps={cfg.steps with weak=true; hnf=true} } in
              norm cfg env stack head
  
            | Tm_let((b, lbs), lbody) when is_top_level lbs && cfg.steps.compress_uvars ->
  