if I have multiple clauses of a function, with their type spec:
i) @spec foo(number)::string
ii) @spec foo(string):: number
iii) @spec foo(tuple):: string
When I call foo with a tuple (in a unit test), would it first try to pattern match with clauses i) and ii), and then iii) or would it straight away check iii) since i) and ii) clearly fail static analysis.