anchor.diff:  -define(TRACE,  io:format("TRACE ~p~n", [?LINE])).
   
   -record(item, { id
  -              , type % file | component
  +              , type % file | dir | component
                 , guid
                 , name
                 , path
  
positive.code:     ok = file:set_cwd(CurDir).
  
  create_wxs(Root) ->
      {ok, FileH} = file:open(filename:join([Root, "rel", "wixsetup", ?WXSFILE])
                              , [write, raw]),
      {ok, PRODUCT_GUID} = get_id(undefined, 'PRODUCT_GUID', undefined),
      {ok, UPGRADE_GUID} = get_id(undefined, 'UPGRADE_GUID', undefined),
  
negative.code:                     " Description='The complete package.'"
                      " Level='1' ConfigurableDirectory='INSTALLDIR'>\n"),
      ok = file:write(FileH,
          "      <Feature Id='MainProgram' Title='"?PRODUCT" "
                                                  ?VERSION" service'"
                      " Description='The service.' Level='1'>\n"),
      dets:sync(?TAB),
      dets:traverse(?TAB,
                    fun(#item{type=component, id = Id}) ->
                            ok = file:write(FileH
                                            , "         <ComponentRef Id='"
                                            ++Id++"' />\n"),
                            continue;
                       (_) -> continue
                    end),
  