Stuff
public text v1 · immutableil :: a -> [a] -> [[a]]
il x [] = [[x]]
il x (y:l) = [x:y:l] ++ [y:l2 | l2 <- (il x l)]
perm :: [a] -> [[a]]
perm [] = [[]]
perm (x:l) = [z | y <- perm l, z <- il x y]
data Symbol = A | B | C | D
deriving(Eq,Ord,Show)
type SymTuple4 = (Symbol, Symbol, Symbol, Symbol)
perm1 :: SymTuple4 -> SymTuple4
perm1 (a,b,c,d) = (b,a,c,d)
perm2 :: SymTuple4 -> SymTuple4
perm2 (a,b,c,d) = (c,b,a,d)
perm3 :: SymTuple4 -> SymTuple4
perm3 (a,b,c,d) = (d,b,c,a)