@classmethod
def fail(cls, exception):
    """
        The failure of an IO monad is an exception

        >>> IO.fail(KeyError("key"))
        Traceback (most recent call last):
            ...
        KeyError: 'key'
        """
    raise exception
