anchor.diff:          Error ->
               Error
       end.
  - 
  +
   versions2() ->
       case ms2() of
           {ok, Mods} ->
  
positive.code:         Error ->
              Error
      end.
   
  version_info(Mods) ->
      SysInfo = sys_info(),
      OsInfo  = os_info(),
      ModInfo = [mod_version_info(Mod) || Mod <- Mods],
      [{sys_info, SysInfo}, {os_info, OsInfo}, {mod_info, ModInfo}].
       
  mod_version_info(Mod) ->
      Info = Mod:module_info(),
      {value, {attributes, Attr}}   = lists:keysearch(attributes, 1, Info),
      {value, {vsn,        [Vsn]}}  = lists:keysearch(vsn,        1, Attr),
      {value, {app_vsn,    AppVsn}} = lists:keysearch(app_vsn,    1, Attr),
      {value, {compile,    Comp}}   = lists:keysearch(compile,    1, Info),
      {value, {version,    Ver}}    = lists:keysearch(version,    1, Comp),
      {value, {time,       Time}}   = lists:keysearch(time,       1, Comp),
      {Mod, [{vsn,              Vsn},
             {app_vsn,          AppVsn},
             {compiler_version, Ver},
             {compile_time,     Time}]}.
  
  sys_info() ->
      SysArch = string:strip(erlang:system_info(system_architecture),right,$\n),
  
negative.code:     CompDate =
          case key1search(compile_time, Info) of
              {value, {Year, Month, Day, Hour, Min, Sec}} ->
                  io_lib:format(
  		  "~w-~2..0w-~2..0w ~2..0w:~2..0w:~2..0w",
  		  [Year, Month, Day, Hour, Min, Sec]);
              _ ->
                  "Not found"
          end,
      Digest =
          case key1search(md5, Info) of
              {value, MD5} when is_binary(MD5) ->
  		[io_lib:format("~2.16.0b", [Byte]) || <<Byte>> <= MD5];
              _ ->
                  "Not found"
          end,
  