module Proton.Par where

import Proton.Types
import Data.Profunctor.Joinable
import Control.Concurrent.Async
import Data.Profunctor

-- parrallelising :: Optic p s t a (m b) ??
parrallelising :: Joinable p Concurrently => p a (IO b) -> p a b
parrallelising :: p a (IO b) -> p a b
parrallelising  = p a (Concurrently b) -> p a b
forall (p :: * -> * -> *) (m :: * -> *) a b.
Joinable p m =>
p a (m b) -> p a b
join' (p a (Concurrently b) -> p a b)
-> (p a (IO b) -> p a (Concurrently b)) -> p a (IO b) -> p a b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (IO b -> Concurrently b) -> p a (IO b) -> p a (Concurrently b)
forall (p :: * -> * -> *) b c a.
Profunctor p =>
(b -> c) -> p a b -> p a c
rmap IO b -> Concurrently b
forall a. IO a -> Concurrently a
Concurrently