anchor.diff:          {ok, {Mod, [{"ExDc", BExDc}]}} ->
               erlang:binary_to_term(BExDc);
           {error, _, {missing_chunk, _, _}} ->
  -            error(no_exdc)
  +            error({no_docs, <<"no ExDc chunk">>})
       end.
  
positive.code:     T = try
              guard_not_supported(Fun, get_elixir_docs_v1(Mod))
          catch
              error:no_exdc ->
                  <<"Module documentation not found">>;
              _:R ->
                  ?il2b([<<"docsh error: ">>,
                         io_lib:format("~p\n~p\n", [R, erlang:get_stacktrace()])])
  
negative.code: -spec h(module(), fname(), arity()) -> ok.
  h(Mod, Fun, Arity) ->
      F = fun (Docs) ->
                  case {lists:keyfind(docs, 1, Docs),
                        lists:keyfind(specs, 1, Docs)} of
                      {false, false} -> error({no_docs, <<"neither docs nor specs found">>});
                      {false, {_, Specs}}     -> format({Fun, Arity}, no_docs, Specs);
                      {{_, Docs}, false}      -> format({Fun, Arity}, Docs, no_specs);
                      {{_, Docs}, {_, Specs}} -> format({Fun, Arity}, Docs, Specs)
                  end
          end,
      guard_no_docs(Mod, F).
  
  