lib/types.ex
defmodule Focus.Types do
@moduledoc """
Shared elements for the Focus modules.
"""
@type product :: map | struct | tuple
@type sum :: list
@type traversable :: product | sum
@type maybe :: {:ok, any} | {:error, any}
@type optic :: Lens.t()
end