`Enum.Iterator.Behaviour` would probably be more inline with Elixir naming conventions (because of `GenServer.Behaviour`).