module Bludigon.Main ( bludigon , ConfigControl (..) ) where import Control.Monad.Trans.Control import Bludigon.Main.Control import Bludigon.Main.CLI import Bludigon.Control import Bludigon.Gamma import Bludigon.Recolor bludigon :: (ControlConstraint m (StM g (StM r ())), MonadControl m, MonadBaseControl IO g, MonadBaseControl IO r, MonadGamma g, MonadRecolor r) => ConfigControl m g r -> IO () bludigon :: ConfigControl m g r -> IO () bludigon ConfigControl m g r c = do IO () launch ConfigControl m g r -> forall a. m a -> IO a forall (m :: * -> *) (g :: * -> *) (r :: * -> *). ConfigControl m g r -> forall a. m a -> IO a runControl ConfigControl m g r c (m () -> IO ()) -> (ControlT m () -> m ()) -> ControlT m () -> IO () forall b c a. (b -> c) -> (a -> b) -> a -> c . ControlT m () -> m () forall (m :: * -> *) a. Monad m => ControlT m a -> m a runControlT (ControlT m () -> IO ()) -> ControlT m () -> IO () forall a b. (a -> b) -> a -> b $ (forall a. g a -> m (StM g a)) -> (forall a. r a -> g (StM r a)) -> ControlT m () forall (m :: * -> *) (g :: * -> *) (r :: * -> *). (ControlConstraint m (StM g (StM r ())), MonadBaseControl IO g, MonadBaseControl IO r, MonadControl m, MonadGamma g, MonadRecolor r) => (forall a. g a -> m (StM g a)) -> (forall a. r a -> g (StM r a)) -> ControlT m () loopRecolor (ConfigControl m g r -> forall a. g a -> m (StM g a) forall (m :: * -> *) (g :: * -> *) (r :: * -> *). ConfigControl m g r -> forall a. g a -> m (StM g a) runGamma ConfigControl m g r c) (ConfigControl m g r -> forall a. r a -> g (StM r a) forall (m :: * -> *) (g :: * -> *) (r :: * -> *). ConfigControl m g r -> forall a. r a -> g (StM r a) runRecolor ConfigControl m g r c)