def call_cc(fn: Callable) -> 'Observable':
        r"""call-with-current-continuation.

        Haskell: callCC f = Cont $ \c -> runCont (f (\a -> Cont $ \_ -> c a )) c
        """
        def subscribe(on_next):
            return fn(lambda a: Observable(lambda _: on_next(a))).subscribe(on_next)

        return Observable(subscribe)