Collapsing/compressing redundant typespecs?

FWIW, distinguishing situations like:

@spec function(integer) :: atom
@spec function(atom) :: integer

and:

@spec function(integer) :: integer
@spec function(atom) :: atom

(both of which Dialyzer collapses to @spec function(integer | atom) :: integer | atom) is a key motivation for the set-theoretic type work: