Only the most permissive domains whose associated return type is
consistent with the expected type are shown in error messages.
For example, for a function with the following type:
Fixnum -> Fixnum
Integer -> Integer
and an expected type of Integer, only the latter domain is shown in
the error message.
original commit: e011ea00bd73fd8ac3b9c4afe4e1435dcaa27cdb