anchor.diff:      in
   
       //expected the stack to be in "last dependency first order", we want to pop in the proper order (although should not matter)
  -    let rec pop_tc_and_stack env (stack:list<(env_t * modul_t)>) ts =
  +    let rec pop_tc_and_stack env (stack:list<env_t>) ts =
         match ts with
           | []    -> (* stack should also be empty here *) env
           | _::ts ->
             //pop
             pop env "";
  -          let (env, _), stack = List.hd stack, List.tl stack in
  +          let env, stack = List.hd stack, List.tl stack in
             pop_tc_and_stack env stack ts
       in
   
  
positive.code:         if not b || (is_stale intf impl intf_t impl_t) then
            //reverse st from "first dependency first order" to "last dependency first order"
            let env = pop_tc_and_stack env' (List.rev_append st []) ts in
            tc_deps m good_stack env depnames good_ts
          else
            let stack_elt, st' = List.hd st, List.tl st in
            iterate depnames' st' env' ts' (stack_elt::good_stack) (ts_elt::good_ts)
        | []           -> (* st should also be empty here *) tc_deps m good_stack env' depnames good_ts
    in
  
    (* Well, the file list hasn't changed, so our (single) file is still there. *)
  
negative.code: 
  type push_kind = | SyntaxCheck | LaxCheck | FullCheck
  
  let set_check_kind (dsenv, tcenv) check_kind =
    let tcenv = { tcenv with lax = (check_kind = LaxCheck) } in
    let dsenv = DsEnv.set_syntax_only dsenv (check_kind = SyntaxCheck) in
    (dsenv, tcenv)
  
  let cleanup (dsenv, env) = TcEnv.cleanup_interactive env
  
  