anchor.diff:                      {error, {read_failed, File, Reason}}
               end;
           {ok, #file_info{}} ->
  -            locate_import_aux(Rest, Import, Opts);
  -        {error, _Reason} ->
  -            locate_import_aux(Rest, Import, Opts)
  +            locate_import_aux(Rest, Import, Opts, Tried);
  +        {error, Reason} ->
  +            locate_import_aux(Rest, Import, Opts, [{File,Reason} | Tried])
       end;
  -locate_import_aux([], Import, _Opts) ->
  -    {error, {import_not_found, Import}}.
  +locate_import_aux([], Import, _Opts, Tried) ->
  +    {error, {import_not_found, Import, Tried}}.
   
   try_topsort_defs(Defs) ->
       G = digraph:new(),
  
positive.code: 
  locate_import(Import, Opts) ->
      ImportPaths = [Path || {i, Path} <- Opts],
      locate_import_aux(ImportPaths, Import, Opts).
  
  locate_import_aux([Path | Rest], Import, Opts) ->
      File = filename:join(Path, Import),
      case file_read_file_info(File, Opts) of
          {ok, #file_info{access = A}} when A == read; A == read_write ->
  
negative.code:     ?f("~s:~w: ~s", [FileName, Line, Module:format_error(ErrInfo)]);
  fmt_err({scan_error, FileName, {Line, Module, ErrInfo}}) ->
      ?f("~s:~w: ~s", [FileName, Line, Module:format_error(ErrInfo)]);
  fmt_err({import_not_found, Import, Tried}) ->
      PrettyTried = [begin
                         PrettyReason = file:format_error(Reason),
                         ?f("~n  ~ts (~s (~p))", [File,PrettyReason,Reason])
                     end
                     || {File,Reason} <- Tried],
      TriedTxt = if Tried == [] -> "";
                    true -> ", tried:"
                 end,
      ?f("Could not find import file ~p~s~s", [Import, TriedTxt, PrettyTried]);
  fmt_err({read_failed, File, Reason}) ->
      ?f("failed to read ~p: ~s (~p)", [File, file:format_error(Reason), Reason]);
  fmt_err({post_process, Reasons}) ->
  