docs: def register_filter_builder(self, function, **kwargs):
          """Register a filter function with this :class:`~.Filters` instance.
          This function is curried with :class:`~okcupyd.util.currying.curry`
          -- that is, it can be invoked partially before it is fully evaluated.
          This allows us to pass kwargs to this function when it is used as a
          decorator:
  
          .. code-block:: python
  
              @register_filter_builder(keys=('real_name',),
                                       decider=Filters.any_decider)
              def my_filter_function(argument):
                  return '4,{0}'.format(argument)
  
          :param function: The filter function to register.
          :param keys: Keys that should be used as the argument names for
                       `function`, if none are provided, the filter functions
                       argument names will be used instead.
          :param decider: a function of signature
                          `(function, incoming_keys, accepted_keys)` that returns
                          True if the filter function should be called and False
                          otherwise. Defaults to
                          :meth:`~.all_not_none_decider`
          :param acceptable_values: A list of acceptable values for the parameter
                                    of the filter function (or a list of lists if
                                    the filter function takes multiple parameters)
          :param types: The type of the parameter accepted by the incoming filter
                        function (or a list of types if the function takes
                        multiple parameters)
          :param descriptions: A description for the incoming filter function's
                               argument (or a list of descriptions if the filter
                               function takes multiple arguments)
          :param output_key: The key to use to output the provided value. Will
                             default to the only value in keys if keys has
                             length 1.
          """
          kwargs['transform'] = function
          if kwargs.get('decider'):
              kwargs['decide'] = kwargs.get('decider')
          return type('filter', (self.filter_class,), kwargs)