Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Utilities for working with ResourceT IO
Synopsis
- type RIO = ResourceT IO
- withRegistry :: forall a b ins out m. (Typeable a, Contains (RIO a) out, Solvable ins out, MonadIO m, MemoizedActions out) => Registry ins out -> (a -> IO b) -> m b
- runRegistryT :: forall a ins out. (Typeable a, Contains (RIO a) out, Solvable ins out, MemoizedActions out) => Registry ins out -> ResourceT IO a
Documentation
withRegistry :: forall a b ins out m. (Typeable a, Contains (RIO a) out, Solvable ins out, MonadIO m, MemoizedActions out) => Registry ins out -> (a -> IO b) -> m b Source #
This function must be used to run services involving a top component It creates an application of type a and which can return a result of type b.
We also make sure that all effects are memoized by calling memoizeAll
on the Registry here!
runRegistryT :: forall a ins out. (Typeable a, Contains (RIO a) out, Solvable ins out, MemoizedActions out) => Registry ins out -> ResourceT IO a Source #
This can be used if you want to insert the component creation inside another action managed with ResourceT. Or if you want to call runResourceT yourself later