I don’t think it is too creepy, one liner functions, more specs and types than code, and…
… no local variables ![]()
@type good_hello() :: map()
@type bad_hello() :: map()
@type any_hello() :: good_hello() | bad_hello()
@spec hello(integer()) :: any_hello()
def hello(1), do: good()
def hello(_), do: bad()
@spec good() :: good_hello()
def good(), do: %{hello: "world"}
@spec bad() :: bad_hello()
def bad(), do: :wtf


















