| 12345678910111213141516171819202122232425 | 
							- module Day5.Part1 (
 -   executeOperation,
 -   day5_1
 - ) where
 - 
 - import qualified Data.Sequence as S
 - import Data.Foldable (toList)
 - import Day5.Shared
 - 
 - executeOperation :: Row -> Operation -> Row
 - executeOperation row op
 -   | count op == 1 = updatedRow
 -   | otherwise = executeOperation updatedRow (Operation { count = count op - 1, from = from op, to = to op })
 -   where
 -     originStack = row `S.index` asInt (from op)
 -     targetStack = row `S.index` asInt (to op)
 -     movedContent = head $ content originStack
 -     updatedOrigin = Stack (drop 1 $ content originStack)
 -     updatedTarget = Stack (movedContent : content targetStack)
 -     updatedRow = S.update (asInt $ to op) updatedTarget $ S.update (asInt $ from op) updatedOrigin row
 - 
 - day5_1 :: String -> String
 - day5_1 input = toList . findTopOfStacks $ foldl executeOperation row operations
 -   where
 -     (row, operations) = parseInput input
 
 
  |