anchor.diff:      in
   
       let guard = if env.top_level || not(Env.should_verify env)
  -                then Rel.discharge_guard env (Env.conj_guard g_env (Env.close_guard envbody bs guard))
  -                else let guard = Env.close_guard env (bs@letrec_binders) (Env.conj_guard g_env guard) in
  +                then Rel.discharge_guard env (Env.conj_guard g_env (Env.close_guard envbody bs guard_body))
  +                else let guard = Env.conj_guard g_env (Env.close_guard env (bs@letrec_binders) guard_body) in
                        guard in
   
  -    let guard = TcUtil.close_guard_implicits env bs guard in
  +    let guard = TcUtil.close_guard_implicits env bs guard in //TODO: this is a noop w.r.t scoping; remove it and the eager_subtyping flag
       let tfun_computed = U.arrow bs cbody in
       let e = U.abs bs body (Some (U.residual_comp_of_comp (dflt cbody c_opt))) in
       let e, tfun, guard = match tfun_opt with
  
positive.code:                                             * guard_t                         (* accumulated logical guard
                                                                                         well-formed in argument env *)
                                              * subst_t =                       (* alpha conv. of bs_expected to bs  *)
          let rec aux (env, subst) (bs:binders) (bs_expected:binders) =
              match bs, bs_expected with
              | [], [] -> env, [], None, Env.trivial_guard, subst
  
  
negative.code:                     *)
                      | _ ->
                        if Env.debug env Options.High then BU.print1 "Checking binder %s\n" (Print.bv_to_string hd);
                        let t, _, g1_env = tc_tot_or_gtot_term env hd.sort in
                        let g2_env =
                          //cf issue #57 (the discussion at the end about subtyping vs. equality in check_binders)
                          //check that the context is more demanding of the argument type
                          if Rel.teq_nosmt env t expected_t
  