invert :: Seq Char -> Op -> Seq Char
invert cs op@(RotateLetter _) =
  let css = map (\x -> update cs (Rotate x)) [0 .. (S.length cs - 1)]
      cs' : _ = filter (\xs -> update xs op == cs) css
  in cs'
invert :: Seq Char -> Op -> Seq Char
invert cs op@(RotateLetter _) =
  let css = map (\x -> update cs (Rotate x)) [0 .. (S.length cs - 1)]
      cs' : _ = filter (\xs -> update xs op == cs) css
  in cs'
invert cs op@(RotateLetter _) =
  let css = map (\x -> update cs (Rotate x)) [0 .. (S.length cs - 1)]
      cs' : _ = filter (\xs -> update xs op == cs) css
  in cs'