For this function on symmetric equality over tuples,
symEq :: Eq a => (a,a) -> (a,a) -> Bool
symEq (x,y) (u,v) = (x,y) == (u,v) || (x,y) == (v,u)
Unlike in some languages (I hear Erlang works that way), repeating a variable name in patterns in Haskell does not compare the values found at those two places, and is usually an error. So you are going to need to use ==
for that.
Anyway, here is a slightly more concise way of writing your function:
symEq t (x,y) = t == (x,y) || t == (y,x)
Or even
symEq t (x,y) = t `elem` [(x,y), (y,x)]