addXor :: Clause -> Clause -> Maybe Clause             
addXor (Xor p vs) (Xor p' vs') = simplify $ newXor (addParity p p') (Set.toList (union `Set.difference` intersect))
    where intersect = vs `Set.intersection` vs'
          union = vs `Set.union` vs'
addXor :: Clause -> Clause -> Maybe Clause
addXor (Xor p vs) (Xor p' vs') = simplify $ newXor (addParity p p') (Set.toList (union `Set.difference` intersect))
    where intersect = vs `Set.intersection` vs'
          union = vs `Set.union` vs'
addXor (Xor p vs) (Xor p' vs') = simplify $ newXor (addParity p p') (Set.toList (union `Set.difference` intersect))
    where intersect = vs `Set.intersection` vs'
          union = vs `Set.union` vs'