docs: def register(self, key, value, type_info):
          """ Registers a callable with the specified key and type info.
  
              `key`
                  String key to identify a callable.
              `value`
                  Callable object.
              `type_info`
                  Dictionary with type information about the value provided.
              """
  
          # check for existing action
          old_action = self._actions.get(key)
  
          # update existing type info if value hasn't changed
          if old_action == value and key in self._type_info:
              self._type_info[key].update(type_info)
          else:
              self._type_info[key] = dict(type_info)
  
          super(ExtRegistry, self).register(key, value)