def bind(self, fn: "Callable[[Any], Reader]") -> 'Reader':
        r"""Bind a monadic function to the Reader.

        Haskell:
        Reader: m >>= k  = Reader $ \r -> runReader (k (runReader m r)) r
        Function: h >>= f = \w -> f (h w) w
        """
        return Reader(lambda x: fn(self.run(x)).run(x))
def bind ( self , fn : "Callable[[Any], Reader]" ) -> 'Reader' : return Reader ( lambda x : fn ( self . run ( x ) ) . run ( x ) )
r"""Bind a monadic function to the Reader.

        Haskell:
        Reader: m >>= k  = Reader $ \r -> runReader (k (runReader m r)) r
        Function: h >>= f = \w -> f (h w) w