anchor.diff:      {Type, _Attr, Content} = read_xml(Conf, File),
   
       TypeSpecsFile = filename:join([dest(Conf), ".xml", "specs_" ++ bname(File)]),
  -    TypeSpecs = case read_xml(Conf, TypeSpecsFile) of
  -        {error, _, _} -> [];
  -        {module, _, Specs} -> strip_whitespace(Specs)
  +    case filelib:is_file(TypeSpecsFile) of
  +        false ->                      TypeSpecs = [];
  +        true ->
  +            case read_xml(Conf, TypeSpecsFile) of
  +                {error, _, _} ->      TypeSpecs = [];
  +                {module, _, Specs} -> TypeSpecs = strip_whitespace(Specs)
  +            end
       end,
   
       case lists:member(Type, buildable()) of
  
positive.code:     XMLFiles = filelib:wildcard(filename:join([AppDir, "doc", "src", "*.xml"])),
      HandWritten = [bname(File, ".xml") || File <- XMLFiles],
  
      ErlFiles = filelib:wildcard(filename:join([AppDir, "*.erl"])) ++
          filelib:wildcard(filename:join([AppDir, "src", "*.erl"])),
  
      % Generate any missing module XML
      SrcFiles = [filename:absname(File) ||
  
negative.code: %% finished (some dumb functions require to be ran from a particular dir)
  -spec tmp_cd(list(), fun()) -> term().
  tmp_cd (Dir, Fun) ->
      {ok, OldDir} = file:get_cwd(),
      ok = filelib:ensure_dir(Dir),
      ok = file:set_cwd(Dir),
      try
          Result = Fun(),
          ok = file:set_cwd(OldDir),
  