You would define it like so:
@type bar :: %{atom => [{binary, integer}]}
@spec foo(bar) :: bar
def foo(bar), do: bar
The above defines a new type, which is your map of atom keys to lists of binary/integer tuples, and then uses that type in the type spec for foo
.