{-# LANGUAGE OverloadedStrings #-} import Control.IO.Region (region) import Control.Monad.Loops (whileJust_) import Hsm.GPIO (allocateGPIO) import Hsm.PWM qualified as P import Hsm.Readline (allocateReadline, readline) import Hsm.Status (StatusEnv, status, statusEnvDefault) newtype Env = Env { statusEnv :: StatusEnv } main :: IO () main = region $ \ioRegion -> do lineRequest <- allocateGPIO ioRegion "test-status" pwmHandle <- P.allocatePWM ioRegion handle <- allocateReadline ioRegion whileJust_ (readline handle) $ status lineRequest pwmHandle $ Env statusEnvDefault