hix-0.8.0: Haskell/Nix development build tools
Safe HaskellNone
LanguageGHC2021

Hix.Monad

Documentation

mapAccumM :: (Traversable t, Monad m) => (s -> a -> m (s, b)) -> s -> t a -> m (s, t b) Source #

withTempFile :: String -> Maybe [Text] -> (Path Abs File -> M a) -> M a Source #

withTempDir :: String -> (Path Abs Dir -> M a) -> M a Source #

noteFatal :: Text -> Maybe a -> M a Source #

noteEnv :: Text -> Maybe a -> M a Source #

note :: Error -> Maybe a -> M a Source #

noteGhci :: Text -> Maybe a -> M a Source #

tryIOM :: IO a -> M a Source #

tryIOMAs :: Error -> IO a -> M a Source #

tryIOMWith :: (Text -> Error) -> IO a -> M a Source #

noteClient :: Text -> Maybe a -> M a Source #

catchIOM :: IO a -> (Text -> M a) -> M a Source #

eitherFatalShow :: Show b => Text -> Either b a -> M a Source #

withLower :: (forall b. (M a -> IO b) -> IO b) -> M a Source #

tryIOMWithM :: (Text -> M a) -> IO a -> M a Source #

noteNew :: Text -> Maybe a -> M a Source #

whenDebug :: M () -> M () Source #

withLogIORef :: ((LogLevel -> Text -> IO ()) -> IO a) -> IO ([Text], a) Source #

runMLog :: Path Abs Dir -> M a -> IO ([Text], Either Error a) Source #

runM :: Path Abs Dir -> M a -> IO (Either Error a) Source #

stateM :: Monad m => (s -> a -> m (s, b)) -> a -> StateT s m b Source #

data M a Source #

Instances

Instances details
MonadIO M Source # 
Instance details

Defined in Hix.Data.Monad

Methods

liftIO :: IO a -> M a #

Applicative M Source # 
Instance details

Defined in Hix.Data.Monad

Methods

pure :: a -> M a #

(<*>) :: M (a -> b) -> M a -> M b #

liftA2 :: (a -> b -> c) -> M a -> M b -> M c #

(*>) :: M a -> M b -> M b #

(<*) :: M a -> M b -> M a #

Functor M Source # 
Instance details

Defined in Hix.Data.Monad

Methods

fmap :: (a -> b) -> M a -> M b #

(<$) :: a -> M b -> M a #

Monad M Source # 
Instance details

Defined in Hix.Data.Monad

Methods

(>>=) :: M a -> (a -> M b) -> M b #

(>>) :: M a -> M b -> M b #

return :: a -> M a #

MonadCatch M Source # 
Instance details

Defined in Hix.Data.Monad

Methods

catch :: (HasCallStack, Exception e) => M a -> (e -> M a) -> M a #

MonadMask M Source # 
Instance details

Defined in Hix.Data.Monad

Methods

mask :: HasCallStack => ((forall a. M a -> M a) -> M b) -> M b #

uninterruptibleMask :: HasCallStack => ((forall a. M a -> M a) -> M b) -> M b #

generalBracket :: HasCallStack => M a -> (a -> ExitCase b -> M c) -> (a -> M b) -> M (b, c) #

MonadThrow M Source # 
Instance details

Defined in Hix.Data.Monad

Methods

throwM :: (HasCallStack, Exception e) => e -> M a #

HasField name AppResources a => HasField (name :: k) AppResProxy (M a) Source # 
Instance details

Defined in Hix.Data.Monad

Methods

getField :: AppResProxy -> M a #

Show k => NLookup LookupFatal k v (Text -> M v) Source # 
Instance details

Defined in Hix.Class.Map

Methods

nLookup :: k -> Maybe v -> Text -> M v Source #