Last minute changes
This commit is contained in:
parent
234ac63b19
commit
5033b49946
1 changed files with 5 additions and 3 deletions
|
@ -289,7 +289,7 @@ Next: let's define those classes
|
||||||
|
|
||||||
## But does it lift?
|
## But does it lift?
|
||||||
|
|
||||||
Which of these functions can be safely converted to `StateT s IO`?
|
Which of these functions can be converted to `StateT s IO` with `lift`?
|
||||||
|
|
||||||
```haskell
|
```haskell
|
||||||
putStrLn :: String -> IO a
|
putStrLn :: String -> IO a
|
||||||
|
@ -320,6 +320,7 @@ newtype ExceptT e m a = ExceptT ( m (Either e a))
|
||||||
|
|
||||||
## Unlifting
|
## Unlifting
|
||||||
|
|
||||||
|
* Also a made up term :)
|
||||||
* Unlifting is taking a control operation living in `IO` and moving it
|
* Unlifting is taking a control operation living in `IO` and moving it
|
||||||
into a transformer
|
into a transformer
|
||||||
* Transformers with no monadic state can safely "unlift" control
|
* Transformers with no monadic state can safely "unlift" control
|
||||||
|
@ -431,6 +432,8 @@ But it's not exactly the type signature people expect.
|
||||||
Two basic approaches today for typeclass-based control function
|
Two basic approaches today for typeclass-based control function
|
||||||
lifting.
|
lifting.
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
## exceptions
|
## exceptions
|
||||||
|
|
||||||
Define an `mtl`-style typeclass for each operation.
|
Define an `mtl`-style typeclass for each operation.
|
||||||
|
@ -487,7 +490,7 @@ recommendations:
|
||||||
|
|
||||||
* Feel free to use any monad transformer "in the small," where you're
|
* Feel free to use any monad transformer "in the small," where you're
|
||||||
not forking threads or acquiring resources
|
not forking threads or acquiring resources
|
||||||
* Keep your overall applications to `ReaderT env IO`
|
* Keep your overall applications to `ReaderT env IO` (or use `RIO`)
|
||||||
|
|
||||||
Prepare torches and pitchforks for the next two slides
|
Prepare torches and pitchforks for the next two slides
|
||||||
|
|
||||||
|
@ -511,7 +514,6 @@ Prepare torches and pitchforks for the next two slides
|
||||||
* But that's the Haskell runtime system
|
* But that's the Haskell runtime system
|
||||||
* Also, you have to deal with async exceptions anyway
|
* Also, you have to deal with async exceptions anyway
|
||||||
* Caveat emptor: Many people disagree with me here
|
* Caveat emptor: Many people disagree with me here
|
||||||
* I still think I'm right :)
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue