imm-2.1.0.0: src/write-file/Prelude.hs
module Prelude (for, io, headFail, headThrow, module Relude, module Relude.Extra.Map) where
import Control.Exception.Safe
import Relude hiding (Handle, appendFile, force, readFile, stdout, writeFile)
import Relude.Extra.Map (lookup)
io :: MonadIO m => IO a -> m a
io = liftIO
for :: [a] -> (a -> b) -> [b]
for = flip map
headThrow :: MonadThrow m => Exception e => e -> [a] -> m a
headThrow _ (a:_) = return a
headThrow e _ = throwM e
headFail :: MonadFail m => String -> [a] -> m a
headFail _ (a:_) = return a
headFail e _ = fail e