Sitelet https://github.com/purescript/purescript-parallel/commit/b9300a07bcc6e39c0d0d46e0f7d00aec3eb01dee
Skip to content

Commit b9300a0

Browse files
authored
Merge pull request #12 from natefaubion/fundeps-2.0
Updates for 2.0
2 parents 46d247a + 1884872 commit b9300a0

2 files changed

Lines changed: 17 additions & 17 deletions

File tree

‎bower.json‎

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,12 @@
1616
"package.json"
1717
],
1818
"dependencies": {
19-
"purescript-transformers": "^1.0.0",
20-
"purescript-refs": "^1.0.0"
19+
"purescript-transformers": "^2.0.0",
20+
"purescript-refs": "^2.0.0",
21+
"purescript-functors": "^1.0.0"
2122
},
2223
"devDependencies": {
23-
"purescript-console": "^1.0.0",
24-
"purescript-functions": "^1.0.0"
24+
"purescript-console": "^2.0.0",
25+
"purescript-functions": "^2.0.0"
2526
}
2627
}

‎src/Control/Parallel/Class.purs‎

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,15 @@ import Control.Monad.Cont.Trans (ContT(..), runContT)
1414
import Control.Monad.Eff (Eff)
1515
import Control.Monad.Eff.Class (class MonadEff, liftEff)
1616
import Control.Monad.Eff.Ref (REF, writeRef, readRef, newRef)
17-
import Control.Monad.Eff.Unsafe (unsafeInterleaveEff)
18-
import Control.Monad.Except (mapExceptT)
19-
import Control.Monad.Except.Trans (ExceptT)
17+
import Control.Monad.Eff.Unsafe (unsafeCoerceEff)
18+
import Control.Monad.Except.Trans (ExceptT(..))
19+
import Control.Monad.Maybe.Trans (MaybeT(..))
2020
import Control.Monad.Reader.Trans (mapReaderT, ReaderT)
2121
import Control.Monad.Writer.Trans (mapWriterT, WriterT)
2222
import Control.Plus (class Plus)
23+
import Data.Either (Either)
2324
import Data.Foldable (class Foldable, traverse_)
25+
import Data.Functor.Compose (Compose(..))
2426
import Data.Maybe (Maybe(..))
2527
import Data.Monoid (class Monoid)
2628
import Data.Traversable (class Traversable, traverse)
@@ -118,9 +120,9 @@ instance monadParParallel :: MonadEff eff m => MonadPar (Parallel m) (ContT Unit
118120
parallel = Parallel
119121
sequential (Parallel ma) = ma
120122

121-
instance monadParExceptT :: MonadPar f m => MonadPar (ExceptT e f) (ExceptT e m) where
122-
parallel = mapExceptT parallel
123-
sequential = mapExceptT sequential
123+
instance monadParExceptT :: MonadPar f m => MonadPar (Compose f (Either e)) (ExceptT e m) where
124+
parallel (ExceptT ma) = Compose (parallel ma)
125+
sequential (Compose fa) = ExceptT (sequential fa)
124126

125127
instance monadParReaderT :: MonadPar f m => MonadPar (ReaderT e f) (ReaderT e m) where
126128
parallel = mapReaderT parallel
@@ -130,12 +132,9 @@ instance monadParWriterT :: (Monoid w, MonadPar f m) => MonadPar (WriterT w f) (
130132
parallel = mapWriterT parallel
131133
sequential = mapWriterT sequential
132134

133-
-- This instance doesn't work yet, since the Applicative instance for MaybeT is
134-
-- too restrictive.
135-
136-
-- instance monadParMaybeT :: MonadPar f m => MonadPar (MaybeT f) (MaybeT m) where
137-
-- parallel = mapMaybeT ?p
138-
-- sequential = mapMaybeT ?s
135+
instance monadParMaybeT :: MonadPar f m => MonadPar (Compose f Maybe) (MaybeT m) where
136+
parallel (MaybeT ma) = Compose (parallel ma)
137+
sequential (Compose fa) = MaybeT (sequential fa)
139138

140139
unsafeWithRef :: forall eff a. Eff (ref :: REF | eff) a -> Eff eff a
141-
unsafeWithRef = unsafeInterleaveEff
140+
unsafeWithRef = unsafeCoerceEff

0 commit comments

Comments
 (0)