anchor.diff:  
       | task :: tasks, prev :: previous
           when (fst prev) = (update_task_timestamps task) ->
  +      debug "Skipping" task;
         aux env tasks previous (prev :: rev_done)
   
       | tasks, previous ->
  
positive.code:   { tf_fname = fname;
      tf_modtime = t0 }
  
  type dep_task =
    | LDInterleaved of timed_fname * timed_fname (* (interface * implementation) *)
    | LDSingle of timed_fname (* interface or implementation *)
    | LDInterfaceOfCurrentFile of timed_fname (* interface *)
  
  type env_t = DsEnv.env * TcEnv.env
  
  
negative.code: invocation of this function. It is used to skip already completed tasks **)
  
  let run_dep_tasks (env: env_t) (tasks: list<dep_task>) (previous: list<completed_dep_task>) =
    let debug verb task =
      if Options.debug_any () then
        Util.print2 "%s %s" verb (string_of_dep_task task) in
  
    let rec revert_many env = function
      | [] -> env
      | (task, env') :: entries ->
        debug "Reverting" task;
        pop env' "run_dep_tasks";
        revert_many env' entries in
  
    let rec aux (env: env_t)
  