docs: def register_deprecated(deprecated_name: str):
      """Register a function as deprecated.
  
      :param deprecated_name: The old name of the function
      :return: A decorator
  
      Usage:
  
      This function must be applied last, since it introspects on the definitions from before
  
      >>> @register_deprecated('my_function')
      >>> @transformation
      >>> def my_old_function()
      >>> ... pass
      """
      if deprecated_name in mapped:
          raise DeprecationMappingError('function name already mapped. can not register as deprecated name.')
  
      def register_deprecated_f(func):
          name = func.__name__
  
          log.debug('%s is deprecated. please migrate to %s', deprecated_name, name)
  
          if name not in mapped:
              raise MissingPipelineFunctionError('function not mapped with transformation, uni_transformation, etc.')
  
          universe = name in universe_map
          in_place = name in in_place_map
  
          # Add back-reference from deprecated function name to actual function name
          deprecated[deprecated_name] = name
  
          return _register_function(deprecated_name, func, universe, in_place)
  
      return register_deprecated_f