docs: def map(self, callback: Callable[[T], U]) -> 'Option[U]':
          """
          Applies the ``callback`` with the contained value as its argument or
          returns :py:data:`NONE`.
  
          Args:
              callback: The callback to apply to the contained value.
  
          Returns:
              The ``callback`` result wrapped in an :class:`Option` if the
              contained value is ``Some``, otherwise :py:data:`NONE`
  
          Examples:
              >>> Some(10).map(lambda x: x * x)
              Some(100)
              >>> NONE.map(lambda x: x * x)
              NONE
          """
          return self._type.Some(callback(self._val)) if self._is_some else cast('Option[U]', NONE)