anchor.diff:      Env1.
   
   add_shell_macros(Env0) ->
  -    %% We write macros in LFE and expand them with macro package.
  +    %% We KNOW how macros are expanded and write them directly in
  +    %% expanded form here.
       Ms = [{c,[lambda,[args,'$ENV'],?BQ([':',lfe_shell,c,?C_A(args)])]},
  +          {describe,[lambda,[args,'$ENV'],
  +                     ?BQ([':',lfe_shell,docs,?Q(?C(args))])]},
             {doc,[lambda,[args,'$ENV'],?BQ([':',lfe_shell,docs,?Q(?C(args))])]},
             {ec,[lambda,[args,'$ENV'],?BQ([':',lfe_shell,ec,?C_A(args)])]},
             {l,[lambda,[args,'$ENV'],?BQ([':',lfe_shell,l,[list|?C(args)]])]},
  
positive.code: print_macro_doc(Mac, Docs) ->
      case lists:keyfind(Mac, #doc.name, Docs) of
          #doc{patterns=Pats,doc=Doc} ->
              lfe_io:format(?BLU("~p")++"\n  ~p\n", [Mac,Pats]),
              print_docs([Doc]);
          false ->
              lfe_io:format("~s\n\n", [<<"No macro defined">>])
      end.
  
  print_function_doc(Fun, Ar, Docs) ->
      case lists:keyfind({Fun,Ar}, #doc.name, Docs) of
          #doc{patterns=Pats,doc=Doc} ->
              lfe_io:format(?BLU("~p/~p")++"\n  ~p\n", [Fun,Ar,Pats]),
              print_docs([Doc]);
          false ->
              lfe_io:format("~s\n\n", [<<"No function defined">>])
      end.
  
  print_docs(Ds) ->
      Fun = fun (D) -> (D =/= <<>>) andalso lfe_io:format("\n~s\n", [D]) end,
  
negative.code:                 [Fun,Ar] ->                     %Function
                      print_function_doc(Fun, Ar, Docs)
              end;
          {error,module} ->
              lfe_io:format("No module ~s\n\n", [Mod]);
          {error,docs} ->
              lfe_io:format("No module documentation for ~s\n\n", [Mod])
      end.
  
  get_doc_chunk(Mod) ->
  