anchor.diff:  The original value of the ``repl_deps_stack`` field in ``st`` is used to skip
   already completed tasks.
   
  -This function is stateful: it uses ``push_repl`` and ``pop_repl``. **)
  -let run_repl_ld_transactions (st: repl_state) (tasks: list<repl_task>) =
  +This function is stateful: it uses ``push_repl`` and ``pop_repl``.
  +
  +`progress_callback` is called once per task, right before the task is run. **)
  +let run_repl_ld_transactions (st: repl_state) (tasks: list<repl_task>)
  +                             (progress_callback: repl_task -> unit) =
     let debug verb task =
       if Options.debug_any () then
         Util.print2 "%s %s" verb (string_of_repl_task task) in
  
positive.code:   | None -> Inr st
    | Some (deps, tasks, dep_graph) ->
      let st = {st with repl_env=FStar.TypeChecker.Env.set_dep_graph st.repl_env dep_graph} in
      match run_repl_ld_transactions st tasks with
      | Inr st -> Inr st
      | Inl st -> Inl (st, deps)
  
  let rephrase_dependency_error issue =
    { issue with issue_message =
  
negative.code:    "describe-protocol"; "describe-repl"; "exit";
     "lookup"; "lookup/context"; "lookup/documentation"; "lookup/definition";
     "peek"; "pop"; "push"; "search"; "segment";
     "vfs-add"; "tactic-ranges"; "interrupt"; "progress"]
  
  exception InvalidQuery of string
  type query_status = | QueryOK | QueryNOK | QueryViolatesProtocol
  