anchor.diff:      (* verification successful *)
       | RecordFuelTrace l ->
           let val_fn = format_fuel_trace_file_name src_fn in
  +        let xd = 
  +            (* we're unable to compute the transitive digest when `--explicit_deps` is specified. *)
  +            if !Options.explicit_deps then
  +                None
  +            else
  +                Some <| compute_transitive_digest src_fn deps
  +        in
           let state = {
               identity = {
  -                source_digest = compute_transitive_digest src_fn deps
  +                module_digest = Util.digest_of_file src_fn;
  +                transitive_digest = xd 
               };
               fuels = l
           }
  
positive.code:     digest_of_string s
  
  let initialize_fuel_trace src_fn deps : unit =
      if !Options.explicit_deps then
          (* disabled when `--explicit_deps` is specified; we don't have enough information to produce or verify transitive source digests. *)
          fuel_trace := FuelTraceUnavailable
      else begin
        let val_fn = format_fuel_trace_file_name src_fn in
        match Util.load_value_from_file val_fn with
        | Some state ->
            let digest = compute_transitive_digest src_fn deps in
            if state.identity.source_digest = digest then
                fuel_trace := ReplayFuelTrace (val_fn, state.fuels)
            else
                fuel_trace := RecordFuelTrace []
        | None ->
            fuel_trace := RecordFuelTrace []
      end
  
  let finalize_fuel_trace src_fn deps : unit =
      begin match !fuel_trace with
  
negative.code: 
  type fuel_trace_identity =
      {
        module_digest:string;
        transitive_digest:option<string>;
      }
  
  type fuel_trace_state =
  