module Machine (Machine, runMachine, next, putHello, putWorld) where

newtype Machine = Machine { runMachine :: IO () }

putHello, putWorld :: Machine
putHello = Machine $ putStrLn "Hello"
putWorld = Machine $ putStrLn "World"

next :: Machine -> Machine -> Machine
next (Machine m1) (Machine m2) = Machine $ m1 >> m2