anchor.diff:      T = try
               guard_not_supported(Fun, get_elixir_docs_v1(Mod))
           catch
  -            error:no_exdc ->
  -                <<"Module documentation not found">>;
  +            error:{no_docs, R} ->
  +                <<"Module documentation not found:", R/bytes>>;
               _:R ->
                   ?il2b([<<"docsh error: ">>,
                          io_lib:format("~p\n~p\n", [R, erlang:get_stacktrace()])])
  
positive.code: -spec h(module(), fname(), arity()) -> ok.
  h(Mod, Fun, Arity) ->
      F = fun (Docs) ->
                  {docs, FunDocs} = lists:keyfind(docs, 1, Docs),
                  {specs, Specs} = lists:keyfind(specs, 1, Docs),
                  FA = {Fun, Arity},
                  %% TODO: fragile
                  {FA,_,_,_,Doc} = lists:keyfind(FA, 1, FunDocs),
                  {FA,Spec} = lists:keyfind(FA, 1, Specs),
                  io_lib:format("~s~n~s", [Spec, Doc])
          end,
      guard_no_docs(Mod, F).
  
  
negative.code: guard_not_supported(_, _) ->
      <<"Documentation format not supported">>.
  
  format(FunArity, no_docs, Specs) ->
      {FunArity, Spec} = lists:keyfind(FunArity, 1, Specs),
      io_lib:format("~s", [Spec]);
  format(FunArity, Docs, no_specs) ->
      {FunArity, _, _, _, Doc} = lists:keyfind(FunArity, 1, Docs),
      io_lib:format("~s", [Doc]);
  format(FunArity, Docs, Specs) ->
      {FunArity, _, _, _, Doc} = lists:keyfind(FunArity, 1, Docs),
      {FunArity, Spec} = lists:keyfind(FunArity, 1, Specs),
      io_lib:format("~s~n~s", [Spec, Doc]).
  
  types(Docs) ->
      Types = proplists:get_value(types, Docs, []),
      [ ["\n", Desc] || {{_Name, _Arity}, Desc} <- Types ].
  