Explicit exceptions in method signatures are a language design mistake. If you need to handle multiple classes of return values, that&#x27;s what sum types are for. Exceptions exist to communicate <i>secret messages</i> from a raiser to a handler, preventing anyone in the middle from intercepting them.