docs: 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))