{-| This module need not be used directly. Refer to @'FRP.Spice.Engine'@ instead. -} module FRP.Spice.Engine.Driver where -------------------- -- Global Imports -- import Control.Monad ---------- -- Code -- {-| Driving a network created with the @'FRP.Spice.Engine.Network.makeNetwork'@ function and a function such as @'FRP.Spice.Engine.RunInput.runInput'@. -} driveNetwork :: (a -> IO (IO ())) -> IO (Maybe a) -> IO () driveNetwork network iomdriver = do mdriver <- iomdriver case mdriver of Just driver -> do join $ network driver driveNetwork network iomdriver Nothing -> return ()