anchor.diff:  
   glob_whispers(File, Cwd) ->
       WhisperFile = File ++ ".wsp",
  -    [drop_suffix(F) || F <- filelib:wildcard(WhisperFile, Cwd)].
  +    [{file, drop_suffix(F)} || F <- filelib:wildcard(WhisperFile, Cwd)].
   
   
   full_dir(Files) ->
  
positive.code:     list_to_binary(string:join(Path, ".")).
  
  
  glob_dirs(Dir, Cwd) when is_binary(Dir) ->
      glob_dirs(binary_to_list(Dir), Cwd);
  
  glob_dirs(Dir, Cwd) ->
      [D || D <- filelib:wildcard(Dir, Cwd),
            filelib:is_dir(Cwd ++ "/" ++ D)].
  
  
  glob_whispers(File, Cwd) when is_binary(File) ->
  
negative.code: 
  find_metrics([FilePart], Cwd) ->
      MetricsPath = tl(Cwd),
      Files = glob_whispers(FilePart, full_dir(Cwd)),
      Dirs = glob_dirs(FilePart, full_dir(Cwd)),
      Elements = lists:sort(fun by_name/2, Files ++ Dirs),
      lists:map(fun(E) -> to_node(E, MetricsPath) end, Elements);
  
  find_metrics([DirPart | Rest], Cwd) ->
      DirCandidates = glob_dirs(DirPart, full_dir(Cwd)),
      Descend = fun({dir, Dir}) -> find_metrics(Rest, Cwd ++ [Dir]) end,
      lists:flatmap(Descend, DirCandidates).
  
  
  to_node({file, File}, Path) ->
      to_node(File, Path, true);
  
  to_node({dir, Dir}, Path) ->
      to_node(Dir, Path, false).
  
  
  to_node(Node, Path, IsLeaf) ->
      {[{<<"leaf">>, IsLeaf},
        {<<"allowChildren">>, not IsLeaf},
        {<<"expandable">>, not IsLeaf},
  