-module(example@store). -compile(no_auto_import). -export([languages/0, countries/0, cities/0]). -export_type([language/0, country/0, city/0]). -type language() :: {language, binary(), binary()}. -type country() :: {country, binary(), binary(), list(city()), list(binary())}. -type city() :: {city, binary()}. -spec languages() -> list(language()). languages() -> [{language, <<"en"/utf8>>, <<"English"/utf8>>}, {language, <<"es"/utf8>>, <<"Spanish"/utf8>>}]. -spec countries() -> list(country()). countries() -> [{country, <<"au"/utf8>>, <<"Australia"/utf8>>, [{city, <<"Melbourne"/utf8>>}, {city, <<"Sydney"/utf8>>}], [<<"en"/utf8>>]}, {country, <<"ar"/utf8>>, <<"Argentina"/utf8>>, [{city, <<"Buenos Aires"/utf8>>}], [<<"es"/utf8>>]}]. -spec cities() -> list(city()). cities() -> _pipe = countries(), gleam@list:flat_map(_pipe, fun(C) -> erlang:element(4, C) end).