varPairs :: Clause -> [((Var, Var), Clause)]                                                 
varPairs xor@(Xor _ vars) = [ (key v1 v2,xor), 
                                    (key v1 v3,xor),
                                    (key v2 v3,xor) ]
    where [v1,v2,v3] = Set.toList vars                                        
varPairs :: Clause -> [((Var, Var), Clause)]
varPairs xor@(Xor _ vars) = [ (key v1 v2,xor), 
                                    (key v1 v3,xor),
                                    (key v2 v3,xor) ]
    where [v1,v2,v3] = Set.toList vars                                        
varPairs xor@(Xor _ vars) = [ (key v1 v2,xor), 
                                    (key v1 v3,xor),
                                    (key v2 v3,xor) ]
    where [v1,v2,v3] = Set.toList vars                                        