update :: Seq Char -> Op -> Seq Char
update cs (SwapPos ix iy) =
  let x = cs `S.index` ix
      y = cs `S.index` iy
  in S.update ix y (S.update iy x cs)
update :: Seq Char -> Op -> Seq Char
update cs (SwapPos ix iy) =
  let x = cs `S.index` ix
      y = cs `S.index` iy
  in S.update ix y (S.update iy x cs)
update cs (SwapPos ix iy) =
  let x = cs `S.index` ix
      y = cs `S.index` iy
  in S.update ix y (S.update iy x cs)