xorPairGroups :: [Clause] -> [[((Var, Var), Clause)]]    
xorPairGroups triXors = groupBy sameGroup $ sortBy cmpGroup 
                                                   (concatMap varPairs triXors)
    where
        sameGroup (k1,_) (k2,_) = k1 == k2
        cmpGroup (k1,_) (k2,_) = compare k1 k2
xorPairGroups :: [Clause] -> [[((Var, Var), Clause)]]
xorPairGroups triXors = groupBy sameGroup $ sortBy cmpGroup 
                                                   (concatMap varPairs triXors)
    where
        sameGroup (k1,_) (k2,_) = k1 == k2
        cmpGroup (k1,_) (k2,_) = compare k1 k2
xorPairGroups triXors = groupBy sameGroup $ sortBy cmpGroup 
                                                   (concatMap varPairs triXors)
    where
        sameGroup (k1,_) (k2,_) = k1 == k2
        cmpGroup (k1,_) (k2,_) = compare k1 k2