wrapAs
If the underlying Result is successful, returns it unchanged. If it failed, and the contained exception is of the specified type, returns it unchanged. Otherwise, wraps the contained exception in the specified type.
Usage: Result.wrapAs(a = ::ThrowableType)