ghcup-0.1.14.2: ghc toolchain installer
Copyright(c) Julian Ospald 2020
LicenseLGPL-3.0
Maintainerhasufell@hasufell.de
Stabilityexperimental
PortabilityPOSIX
Safe HaskellNone
LanguageHaskell2010

GHCup.Utils.Prelude

Description

GHCup specific prelude. Lots of Excepts functionality.

Synopsis

Documentation

fS :: IsString a => String -> a Source #

fSM :: Maybe a -> Maybe a Source #

tSM :: Maybe a -> Maybe a Source #

iE :: String -> IO a Source #

showT :: Show a => a -> Text Source #

whenM :: Monad m => m Bool -> m () -> m () Source #

Like when, but where the test can be monadic.

unlessM :: Monad m => m Bool -> m () -> m () Source #

Like unless, but where the test can be monadic.

ifM :: Monad m => m Bool -> m a -> m a -> m a Source #

Like if, but where the test can be monadic.

whileM :: Monad m => m a -> (a -> m Bool) -> m a Source #

whileM_ :: Monad m => m a -> (a -> m Bool) -> m () Source #

guardM :: (Monad m, Alternative m) => m Bool -> m () Source #

handleIO' :: (MonadIO m, MonadCatch m) => IOErrorType -> (IOException -> m a) -> m a -> m a Source #

(??) :: forall e es a m. (Monad m, e :< es) => Maybe a -> e -> Excepts es m a Source #

(!?) :: forall e es a m. (Monad m, e :< es) => m (Maybe a) -> e -> Excepts es m a Source #

lE :: forall e es a m. (Monad m, e :< es) => Either e a -> Excepts es m a Source #

lE' :: forall e' e es a m. (Monad m, e :< es) => (e' -> e) -> Either e' a -> Excepts es m a Source #

lEM :: forall e es a m. (Monad m, e :< es) => m (Either e a) -> Excepts es m a Source #

lEM' :: forall e' e es a m. (Monad m, e :< es) => (e' -> e) -> m (Either e' a) -> Excepts es m a Source #

fromEither :: Either a b -> VEither '[a] b Source #

liftIOException' :: (MonadCatch m, MonadIO m, Monad m, e :< es', LiftVariant es es') => IOErrorType -> e -> Excepts es m a -> Excepts es' m a Source #

liftIOException :: (MonadCatch m, MonadIO m, Monad m, e :< es') => IOErrorType -> e -> m a -> Excepts es' m a Source #

hideError :: (MonadIO m, MonadCatch m) => IOErrorType -> m () -> m () Source #

Uses safe-exceptions.

hideErrorDef :: [IOErrorType] -> a -> IO a -> IO a Source #

hideErrorDefM :: [IOErrorType] -> IO a -> IO a -> IO a Source #

hideExcept :: forall e es es' a m. (Monad m, e :< es, LiftVariant (Remove e es) es') => e -> a -> Excepts es m a -> Excepts es' m a Source #

hideExcept' :: forall e es es' m. (Monad m, e :< es, LiftVariant (Remove e es) es') => e -> Excepts es m () -> Excepts es' m () Source #

reThrowAll :: forall e es es' a m. (Monad m, e :< es') => (V es -> e) -> Excepts es m a -> Excepts es' m a Source #

reThrowAllIO :: forall e es es' a m. (MonadCatch m, Monad m, MonadIO m, e :< es') => (V es -> e) -> (IOException -> e) -> Excepts es m a -> Excepts es' m a Source #

throwEither :: (Exception a, MonadThrow m) => Either a b -> m b Source #

throwEither' :: (Exception a, MonadThrow m) => a -> Either x b -> m b Source #

decUTF8Safe :: ByteString -> Text Source #

Safe decodeUtf8With. Replaces an invalid input byte with the Unicode replacement character U+FFFD.

escapeVerRex :: Version -> ByteString Source #

Escape a version for use in regex