def bind(self, fn: Callable[[Any], 'Cont']) -> 'Cont':
        r"""Chain continuation passing functions.

        Haskell: m >>= k = Cont $ \c -> runCont m $ \a -> runCont (k a) c
        """
        return Cont(lambda c: self.run(lambda a: fn(a).run(c)))