Safe Haskell | None |
---|---|
Language | Haskell2010 |
- class Has a as where
- class Monad m => MonadExts es m | m -> es where
- getExt :: (MonadExts es m, Has e es) => proxy e -> m e
- type Middleware' = forall exts. ActionT exts '[] IO () -> ActionT exts '[] IO ()
- class Extension e where
- data Extensions es
- noExtension :: Monad m => Initializer m i i
- data Initializer m i o
- initializer :: (Extension e, Monad m) => (Extensions es -> m e) -> Initializer m es (e ': es)
- type Initializer' m a = forall i. Initializer m i (a ': i)
- initializer' :: (Extension e, Monad m) => m e -> Initializer' m e
- initializerBracket :: Extension e => (forall a. Extensions es -> (e -> m a) -> m a) -> Initializer m es (e ': es)
- initializerBracket' :: Extension e => (forall a. (e -> m a) -> m a) -> Initializer m es (e ': es)
- (+>) :: Monad m => Initializer m i x -> Initializer m x o -> Initializer m i o
Documentation
getExtension :: proxy a -> Extensions as -> a Source #
class Extension e where Source #
extMiddleware :: e -> Middleware Source #
extMiddleware' :: e -> Middleware' Source #
data Extensions es Source #
noExtension :: Monad m => Initializer m i i Source #
initializer constructor
data Initializer m i o Source #
initializer :: (Extension e, Monad m) => (Extensions es -> m e) -> Initializer m es (e ': es) Source #
type Initializer' m a = forall i. Initializer m i (a ': i) Source #
initializer' :: (Extension e, Monad m) => m e -> Initializer' m e Source #
initializerBracket :: Extension e => (forall a. Extensions es -> (e -> m a) -> m a) -> Initializer m es (e ': es) Source #
initializerBracket' :: Extension e => (forall a. (e -> m a) -> m a) -> Initializer m es (e ': es) Source #
combine initializer
(+>) :: Monad m => Initializer m i x -> Initializer m x o -> Initializer m i o Source #
combine two Initializer. since 0.16.0.