part2'' (x Seq.:< xs)
  | Seq.null xs = Just x
  | otherwise = 
      part2' $ (l Seq.>< Seq.drop 1 r) Seq.|> x
  where (l,r) = Seq.splitAt (mid xs) xs
        mid xs = (length xs - 1) `div` 2
part2'' (x Seq.:< xs)
  | Seq.null xs = Just x
  | otherwise = 
      part2' $ (l Seq.>< Seq.drop 1 r) Seq.|> x
  where (l,r) = Seq.splitAt (mid xs) xs
        mid xs = (length xs - 1) `div` 2
part2'' (x Seq.:< xs)
  | Seq.null xs = Just x
  | otherwise = 
      part2' $ (l Seq.>< Seq.drop 1 r) Seq.|> x
  where (l,r) = Seq.splitAt (mid xs) xs
        mid xs = (length xs - 1) `div` 2