Resolving dependencies... Configuring mtl-2.2.1... Configuring pcre-light-0.4.0.4... Building mtl-2.2.1... Building pcre-light-0.4.0.4... Installed pcre-light-0.4.0.4 Configuring text-1.2.2.1... Building text-1.2.2.1... Installed mtl-2.2.1 Installed text-1.2.2.1 Configuring parsec-3.1.11... Building parsec-3.1.11... Installed parsec-3.1.11 Downloading hmk-0.9.6... Configuring hmk-0.9.6... Building hmk-0.9.6... Failed to install hmk-0.9.6 Build log ( /home/builder/.cabal/logs/hmk-0.9.6.log ): cabal: Entering directory '/tmp/cabal-tmp-8349/hmk-0.9.6' Configuring hmk-0.9.6... Building hmk-0.9.6... Preprocessing library hmk-0.9.6... [1 of 5] Compiling Control.Hmk[boot] ( Control/Hmk.lhs-boot, dist/build/Control/Hmk.o-boot ) [2 of 5] Compiling Control.Hmk.Analyze ( Control/Hmk/Analyze.lhs, dist/build/Control/Hmk/Analyze.o ) [3 of 5] Compiling Control.Hmk.Concurrent ( Control/Hmk/Concurrent.lhs, dist/build/Control/Hmk/Concurrent.o ) Control/Hmk/Concurrent.lhs:52:13: error: • Non type-variable argument in the constraint: MonadState (Map.Map k (MVar Done)) m (Use FlexibleContexts to permit this) • When checking the inferred type aux :: forall (m :: * -> *) k. (Show k, Ord k, MonadIO m, MonadState (Map.Map k (MVar Done)) m) => QSem -> Tree IO k -> m (IO ()) In an equation for ‘processTree’: processTree slots gr = do { sem <- newQSem slots; join $ evalStateT (sequence_ <$> mapM (aux sem) gr) Map.empty } where aux sem (Node x ps rule) = do { ws <- mapM (wait sem) ps; .... } wait sem n@(Node x _ _) = do { seen <- get; .... } cabal: Leaving directory '/tmp/cabal-tmp-8349/hmk-0.9.6' cabal: Error: some packages failed to install: hmk-0.9.6 failed during the building phase. The exception was: ExitFailure 1