'Provide a modifying decorator that defines a custom
comparator producing method.
The return value of the decorated method should be an instance of
:class:`~.hybrid.Comparator`.'

def comparator(self, comparator):

    proxy_attr = attributes.create_proxied_attribute(self)
    def expr(owner):
        return proxy_attr(owner, self.__name__, self, comparator(owner))
    self.expr = expr
    return self
