docs: def extract_values(self, possible_solution, use_defaults=False):
          """Returns a tuple of the values that pertain to this constraint.
  
          It simply filters all values to by the variables this constraint uses.
          """
          defaults = self._vardefaults if use_defaults else {}
          values = list(self._template)
          for i, var in enumerate(self._vars):
              values[i] = possible_solution.get(var, defaults.get(var, NilObject()))
          return values