anchor.diff:  
   -record(plt, {version   = ?VERSION   :: string(),
                 checksums = []         :: [file_checksum()],
  -              modules   = dict:new() :: dict(),
                 table     = dict:new() :: dict(),
                 cache     = []         :: [{term(), dict()}]}).
   
  
positive.code: -spec new(dict(), files()) -> plt().
  new(Table, Filenames) ->
      #plt{table = Table,
           modules = module_dependencies(Table),
           checksums = compute_checksums(absolute(Filenames))}.
  
  -spec table(plt(), options()) -> dict().
  
negative.code: %% @doc Provided a list of files, return a list of modules which depend
  %% on them and should be re-analysed.
  -spec dependent_modules(plt(), files()) -> [module()].
  
  dependent_modules(#plt{table = T}, Filenames) ->
      Ms = ?utils:module_rmap(T),
      uflatten([reachable(module(F), Ms) || F <- Filenames]).
  
  
  