Resolving dependencies... Configuring cabal-doctest-1.0.6... Configuring base-orphans-0.7... Building base-orphans-0.7... Building cabal-doctest-1.0.6... Installed base-orphans-0.7 Configuring fail-4.9.0.0... Installed cabal-doctest-1.0.6 Configuring reflection-2.1.3... Building fail-4.9.0.0... Installed fail-4.9.0.0 Configuring semigroups-0.18.4... Building reflection-2.1.3... Building semigroups-0.18.4... Installed semigroups-0.18.4 Configuring th-abstraction-0.2.6.0... Building th-abstraction-0.2.6.0... Installed reflection-2.1.3 Configuring transformers-compat-0.6.2... Building transformers-compat-0.6.2... Installed th-abstraction-0.2.6.0 Configuring void-0.7.2... Building void-0.7.2... Installed void-0.7.2 Installed transformers-compat-0.6.2 Configuring transformers-base-0.4.5.2... Configuring tagged-0.8.5... Building tagged-0.8.5... Building transformers-base-0.4.5.2... Installed transformers-base-0.4.5.2 Configuring exceptions-0.10.0... Building exceptions-0.10.0... Installed tagged-0.8.5 Configuring contravariant-1.4.1... Building contravariant-1.4.1... Installed exceptions-0.10.0 Configuring monad-control-1.0.2.3... Building monad-control-1.0.2.3... Installed contravariant-1.4.1 Configuring distributive-0.5.3... Installed monad-control-1.0.2.3 Configuring extensible-effects-2.6.2.0... Building extensible-effects-2.6.2.0... Building distributive-0.5.3... Installed distributive-0.5.3 Configuring comonad-5.0.3... Installed extensible-effects-2.6.2.0 Building comonad-5.0.3... Installed comonad-5.0.3 Configuring bifunctors-5.5.2... Building bifunctors-5.5.2... Installed bifunctors-5.5.2 Configuring profunctors-5.2.2... Configuring semigroupoids-5.2.2... Building profunctors-5.2.2... Building semigroupoids-5.2.2... Installed profunctors-5.2.2 Installed semigroupoids-5.2.2 Configuring free-5.0.2... Building free-5.0.2... Installed free-5.0.2 Configuring adjunctions-4.4... Building adjunctions-4.4... Installed adjunctions-4.4 Configuring kan-extensions-5.1... Building kan-extensions-5.1... Installed kan-extensions-5.1 Configuring lens-4.16.1... Building lens-4.16.1... Installed lens-4.16.1 Downloading extensible-effects-concurrent-0.1.0.1... Configuring extensible-effects-concurrent-0.1.0.1... Building extensible-effects-concurrent-0.1.0.1... Failed to install extensible-effects-concurrent-0.1.0.1 Build log ( /home/builder/.cabal/logs/ghc-8.2.2/extensible-effects-concurrent-0.1.0.1-GBe1YyLTBps3hosM1qMq9t.log ): cabal: Entering directory '/tmp/cabal-tmp-12530/extensible-effects-concurrent-0.1.0.1' Configuring extensible-effects-concurrent-0.1.0.1... Preprocessing library for extensible-effects-concurrent-0.1.0.1.. Building library for extensible-effects-concurrent-0.1.0.1.. [1 of 6] Compiling Control.Eff.Interactive ( src/Control/Eff/Interactive.hs, dist/build/Control/Eff/Interactive.o ) [2 of 6] Compiling Control.Eff.Processes ( src/Control/Eff/Processes.hs, dist/build/Control/Eff/Processes.o ) [3 of 6] Compiling Control.Eff.Processes.STM ( src/Control/Eff/Processes/STM.hs, dist/build/Control/Eff/Processes/STM.o ) src/Control/Eff/Processes/STM.hs:81:15: error: • Couldn't match expected type ‘Eff (Reader (Eff (Reader (TVar Scheduler) : r) ()) : r) ()’ with actual type ‘TVar Scheduler’ • In the second argument of ‘runReader’, namely ‘v’ In a stmt of a 'do' block: runReader e v In the expression: do v <- lift (newTVarIO (Scheduler 1 Map.empty)) runReader e v • Relevant bindings include e :: Eff (Reader (TVar Scheduler) : r) () (bound at src/Control/Eff/Processes/STM.hs:79:14) runScheduler :: Eff (Reader (TVar Scheduler) : r) () -> Eff r () (bound at src/Control/Eff/Processes/STM.hs:79:1) | 81 | runReader e v | ^ src/Control/Eff/Processes/STM.hs:92:16: error: • Could not deduce (Data.OpenUnion.FindElem (Reader (Eff '[Reader (Eff '[Reader (TVar Scheduler), Lift IO] ()), Lift IO] ())) r) arising from a use of ‘ask’ from the context: HasScheduler r bound by the type signature for: spawn :: forall (r :: [* -> *]). HasScheduler r => Eff ProcessIOEffects () -> Eff r ProcessId at src/Control/Eff/Processes/STM.hs:90:1-69 • In a stmt of a 'do' block: processes <- ask In the expression: do processes <- ask pidVar <- lift newEmptyTMVarIO _threadId <- lift (forkIO (runLift (runReader (dispatchMessages (do pid <- self lift (atomically (putTMVar pidVar pid)) mfa)) processes))) lift (atomically (takeTMVar pidVar)) In an equation for ‘spawn’: spawn mfa = do processes <- ask pidVar <- lift newEmptyTMVarIO _threadId <- lift (forkIO (runLift (runReader (dispatchMessages (do pid <- self lift (atomically (putTMVar pidVar pid)) ....)) processes))) .... | 92 | processes <- ask | ^^^ cabal: Leaving directory '/tmp/cabal-tmp-12530/extensible-effects-concurrent-0.1.0.1' cabal: Error: some packages failed to install: extensible-effects-concurrent-0.1.0.1-GBe1YyLTBps3hosM1qMq9t failed during the building phase. The exception was: ExitFailure 1