<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def map(self, fn: Callable[[Any], Any]) -> 'Reader': r"""Map a function over the Reader. Haskell: fmap f m = Reader $ \r -> f (runReader m r). fmap f g = (\x -> f (g x)) """

        def _compose(x: Any) -> Any:
            try:
                ret = fn(self.run(x))
            except TypeError:
                ret = partial(fn, self.run(x))
            return ret
        return Reader(_compose)