docs: def map(self, func: Callable[[Tuple[Any, Log]], Tuple[Any, Log]]) -> 'Writer':
          """Map a function func over the Writer value.
  
          Haskell:
          fmap f m = Writer $ let (a, w) = runWriter m in (f a, w)
  
          Keyword arguments:
          func -- Mapper function:
          """
          a, w = self.run()
          b, _w = func((a, w))
          return Writer(b, _w)