anchor.diff:  %% 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),
  
positive.code:     {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)
      end,
  
      case lists:member(Type, buildable()) of
  
negative.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) ||
  