Skip to content
This repository was archived by the owner on Jan 17, 2020. It is now read-only.

Commit 9159e08

Browse files
Add run functions
1 parent 259046c commit 9159e08

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

src/Control/Monad/IO.purs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
module Control.Monad.IO
22
( module Control.Monad.IO.Effect
33
, IO(..)
4+
, runIO
5+
, runIO'
46
, launchIO
57
) where
68

@@ -24,6 +26,12 @@ import Prelude
2426

2527
newtype IO a = IO (Aff (infinity :: INFINITY) a)
2628

29+
runIO :: IO ~> Aff (infinity :: INFINITY)
30+
runIO = unwrap
31+
32+
runIO' :: eff. IO ~> Aff (infinity :: INFINITY | eff)
33+
runIO' = unsafeCoerceAff <<< unwrap
34+
2735
launchIO :: a. IO a -> IOSync Unit
2836
launchIO = void <<< liftEff <<< launchAff <<< unwrap
2937

src/Control/Monad/IOSync.purs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
module Control.Monad.IOSync
22
( module Control.Monad.IO.Effect
33
, IOSync(..)
4+
, runIOSync
5+
, runIOSync'
46
) where
57

68
import Control.Alt (class Alt)
@@ -20,6 +22,12 @@ import Prelude
2022

2123
newtype IOSync a = IOSync (Eff (infinity :: INFINITY) a)
2224

25+
runIOSync :: IOSync ~> Eff (infinity :: INFINITY)
26+
runIOSync = unwrap
27+
28+
runIOSync' :: eff. IOSync ~> Eff (infinity :: INFINITY | eff)
29+
runIOSync' = unsafeCoerceEff <<< unwrap
30+
2331
derive instance newtypeIOSync :: Newtype (IOSync a) _
2432

2533
derive newtype instance functorIOSync :: Functor IOSync

0 commit comments

Comments
 (0)