Copyright | (c) 2016 Stephen Diehl (c) 2016-2018 Serokell (c) 2018-2020 Kowainik |
---|---|
License | MIT |
Maintainer | Kowainik <xrom.xkov@gmail.com> |
Stability | Stable |
Portability | Portable |
Safe Haskell | Safe |
Language | Haskell2010 |
Lifted versions of base functions.
These functions are lifted in a sense that you can use them inside various
monad transformers without adding liftIO
calls explicitly. However, you still
can use all these functions inside plain IO
monad as usual.
Example
base
With the base
function, you can easily work with these functions in the
IO
monad:
main ::IO
() main = do x <-getLine
However, to work in MonadIO
you already need to "lift" them:
main ::MonadIO
m => m () main = do x <-liftIO
getLine
liftIO
(
relude
In the meantime, relude
provides these function that can work in IO
the same way:
main ::IO
() main = do x <-getLine
But also allows you to work in the MonadIO
monads more easily:
main ::MonadIO
m => m () main = do x <-getLine
Synopsis
- module Relude.Lifted.Concurrent
- module Relude.Lifted.IORef
- module Relude.Lifted.Exit
- module Relude.Lifted.File
- module Relude.Lifted.Terminal
Documentation
module Relude.Lifted.Concurrent
module Relude.Lifted.IORef
Lifted reexports from Data.IORef module.
module Relude.Lifted.Exit
Lifted versions of functions that work with exit processes.
module Relude.Lifted.File
Lifted versions of functions working with files and common IO
.
module Relude.Lifted.Terminal
Lifted functions to work with stdin and stdout.