@classmethod
def _factory(cls, constraints, op):
    """ Factory for joining constraints with a single conjunction """
    pieces = []
    for i, constraint in enumerate(constraints):
        pieces.append(constraint)
        if i != len(constraints) - 1:
            pieces.append(op)
    return cls(pieces)
