anchor.diff:    let rec revert_many env = function
       | [] -> env
       | (task, env') :: entries ->
  +      // Note that we don't roll back additions to repl_names here.  It would be
  +      // nice to do it, but it's a corner case and it's tricky to do cleanly.
         debug "Reverting" task;
         pop env' "run_dep_tasks";
         revert_many env' entries in
  
positive.code:   FStar.Errors.clear ();
    errors
  
  let run_regular_push (st: full_repl_state) query =
    let { push_kind = kind; push_code = text; push_line = line;
          push_column = column; push_peek_only = peek_only } = query in
  
    let env = push_repl kind st in
  
    let env, finish_name_tracking = track_name_changes env in // begin name tracking…
  
    // If we are at a stage where we have not yet pushed a fragment from the
    // current buffer, see if some dependency is stale. If so, update it. Also
    // if this is the first chunk, we need to restore the command line options.
    let restore_cmd_line_options, (env, deps) =
      if repl_stack_empty ()
      then true, (env, st.repl_deps) // FIXME: update_deps st.repl_fname env st.repl_deps
      else false, (env, st.repl_deps) in
  
    if restore_cmd_line_options then
      Options.restore_cmd_line_options false |> ignore;
  
    let frag = { frag_text = text; frag_line = line; frag_col = column } in
    let res = check_frag env st.repl_curmod (frag, false) in
  
negative.code:     PartialReplState ({ prepl_env = env;
                          prepl_fname = filename;
                          prepl_stdin = open_stdin ();
                          prepl_names = CompletionTable.empty;
                          prepl_deps = [] }) in
  
    let exit_code =
  