Skip to content

Instantly share code, notes, and snippets.

@hanshoglund
Created March 2, 2017 12:58
Show Gist options
  • Select an option

  • Save hanshoglund/bc401ff31df7ed1f212eea6543bddd54 to your computer and use it in GitHub Desktop.

Select an option

Save hanshoglund/bc401ff31df7ed1f212eea6543bddd54 to your computer and use it in GitHub Desktop.
-- TODO move
class MonadPar m where
par :: m a -> Concurrently a
getPar :: Concurrently a -> m a
raceP :: MonadPar m => (a -> m a) -> [a] -> m a
raceP f = getPar . foldr (<|>) empty . fmap (par . f)
traverseP :: MonadPar m => (a -> m a) -> [a] -> m [a]
traverseP f = getPar . sequenceA . fmap (par . f)
instance MonadPar m => MonadPar (ReaderT r m) where
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment