import Wayland partial def mainLoop (loop : EventLoop) : IO Unit := do match (← loop.poll) with | .none => return | .some msg => msg; mainLoop loop partial def main : IO Unit := do let disp ← Display.new .none let loop ← EventLoop.new _ ← loop.addDisplay disp _ ← loop.addSignal 2 (do IO.println "Received SIGINT" loop.quit) let rec setUpTimer := loop.addTimer 500 (do IO.println "Timer tick" _ ← setUpTimer) _ ← setUpTimer disp.roundtrip mainLoop loop