anchor.diff:              ([], env)
               bs in
           List.rev nbs
  -
  -and norm_lcomp_opt : cfg -> env -> option<residual_comp> -> option<residual_comp> =
  -    fun cfg env lopt ->
  -        match lopt with
  -        | Some rc ->
  -          let flags = filter_out_lcomp_cflags rc.residual_flags in
  -          Some ({rc with residual_typ=if cfg.steps.for_extraction then None else BU.map_opt rc.residual_typ (norm cfg env [])})
  -       | _ -> lopt
   
   and maybe_simplify cfg env stack tm =
       let tm' = maybe_simplify_aux cfg env stack tm in
  
positive.code: 
        | Abs (env', bs, env'', lopt, r)::stack ->
          let bs = norm_binders cfg env' bs in
          let lopt = norm_lcomp_opt cfg env'' lopt in
          rebuild cfg env stack ({abs bs t lopt with pos=r})
  
        | Arg (Univ _,  _, _)::_
  
negative.code:             end
  
            | Tm_match(head, asc_opt, branches, lopt) ->
              let lopt = BU.map_option (maybe_drop_rc_typ cfg) lopt in
              let stack = Match(env, asc_opt, branches, lopt, cfg, t.pos)::stack in
              if cfg.steps.iota
                  && cfg.steps.weakly_reduce_scrutinee
  