Competitive Programming in Haskell: stacks, queues, and monoidal sliding windows

functional