-- | -- Module: Boots.Internal -- Copyright: 2019 Daniel YU -- License: BSD3 -- Maintainer: leptonyu@gmail.com -- Stability: experimental -- Portability: portable -- -- Boot plugin and application. -- module Boots.Internal( -- * Plugin module Boots.Internal.Plugin -- * Application , bootApp , module Boots.Internal.App ) where import Boots.Internal.App import Boots.Internal.Plugin -- | Run application in context with the help of plugin. Context @cxt@ can't escape from @m@. -- If you want to define your own `AppT` then please use 'boot' or 'runPlugin'. bootApp :: Plugin () m cxt -> AppT cxt m () -> m () bootApp plugin app = runPlugin () plugin (`runAppT` app)