defimpl Enumerable, for: Tuple do def count(tuple) do tuple_size(tuple) end def member?([], _), do {:ok, false} def member?({}, _), do {:ok, false} def member?(tuple, elem) do tuple |> Tuple.to_list |> member?(elem) end def slice({}, _start, _count), do: {} def slice(tuple, start, count), do tuple |> Tuple.to_list |> slice(start, count) end def reduce(_, {:halt, acc}, _fun), do: {:error, __MODULE__} end