Since Elixir 1.18.0, while under the left panel of the hexdocs Protocol is shown under Protocols category, the actual documentation page Protocol — Elixir v1.18.3, has the heading “Protocol behavior”. All other items in the category have headings with the protocol appended e.g. “Enumerable protocol”.
In the docs for till version 1.17, the heading is just “Protocol”. There is no change in the headings for other items in the protocols category.
Would like to understand better if this is not an oversight?
This change does not mean that modules that you implement with defprotocol are also now behaviours. This is strictly an implementation detail of Protocol, and does not affect modules created by defprotocol, so the docs not changing for them is correct.
The ex_doc library that generates the documentation website uses introspection to automatically determine if it should add those behaviour subheaders to moduledocs. Now that Protocol happens to be a behaviour under the hood (but stdlib protocols still aren’t), that is reflected in the documentation. So this is not an oversight, just everything working well as intended.