Resolving dependencies... Configuring call-stack-0.1.0... Configuring monad-loops-0.4.3... Building call-stack-0.1.0... Building monad-loops-0.4.3... Installed call-stack-0.1.0 Configuring mtl-2.2.1... Configuring primitive-0.6.2.0... Installed monad-loops-0.4.3 Building mtl-2.2.1... Building primitive-0.6.2.0... Configuring stm-2.4.4.1... Installed mtl-2.2.1 Building stm-2.4.4.1... Configuring transformers-compat-0.5.1.4... Installed primitive-0.6.2.0 Configuring random-1.1... Installed stm-2.4.4.1 Building transformers-compat-0.5.1.4... Building random-1.1... Configuring HUnit-1.5.0.0... Installed transformers-compat-0.5.1.4 Building HUnit-1.5.0.0... Installed random-1.1 Configuring exceptions-0.8.3... Building exceptions-0.8.3... Configuring atomic-primops-0.8.0.4... Installed HUnit-1.5.0.0 Installed exceptions-0.8.3 Building atomic-primops-0.8.0.4... Installed atomic-primops-0.8.0.4 Configuring dejafu-0.2.0.0... Building dejafu-0.2.0.0... Failed to install dejafu-0.2.0.0 Build log ( /home/builder/.cabal/logs/dejafu-0.2.0.0.log ): cabal: Entering directory '/tmp/cabal-tmp-31228/dejafu-0.2.0.0' Configuring dejafu-0.2.0.0... Building dejafu-0.2.0.0... Preprocessing library dejafu-0.2.0.0... [ 1 of 19] Compiling Test.DejaFu.Internal ( Test/DejaFu/Internal.hs, dist/build/Test/DejaFu/Internal.o ) [ 2 of 19] Compiling Test.DejaFu.STM.Internal ( Test/DejaFu/STM/Internal.hs, dist/build/Test/DejaFu/STM/Internal.o ) [ 3 of 19] Compiling Data.List.Extra ( Data/List/Extra.hs, dist/build/Data/List/Extra.o ) [ 4 of 19] Compiling Control.Monad.STM.Class ( Control/Monad/STM/Class.hs, dist/build/Control/Monad/STM/Class.o ) [ 5 of 19] Compiling Test.DejaFu.STM ( Test/DejaFu/STM.hs, dist/build/Test/DejaFu/STM.o ) [ 6 of 19] Compiling Test.DejaFu.Deterministic.Internal.Common ( Test/DejaFu/Deterministic/Internal/Common.hs, dist/build/Test/DejaFu/Deterministic/Internal/Common.o ) [ 7 of 19] Compiling Test.DejaFu.Deterministic.Internal.Threading ( Test/DejaFu/Deterministic/Internal/Threading.hs, dist/build/Test/DejaFu/Deterministic/Internal/Threading.o ) Test/DejaFu/Deterministic/Internal/Threading.hs:148:3: warning: [-Wname-shadowing] This binding for ‘mask’ shadows the existing binding defined at Test/DejaFu/Deterministic/Internal/Threading.hs:135:1 Test/DejaFu/Deterministic/Internal/Threading.hs:152:9: warning: [-Wname-shadowing] This binding for ‘mask’ shadows the existing binding defined at Test/DejaFu/Deterministic/Internal/Threading.hs:135:1 [ 8 of 19] Compiling Test.DejaFu.Deterministic.Internal.Memory ( Test/DejaFu/Deterministic/Internal/Memory.hs, dist/build/Test/DejaFu/Deterministic/Internal/Memory.o ) Test/DejaFu/Deterministic/Internal/Memory.hs:52:4: warning: [-Wname-shadowing] This binding for ‘map’ shadows the existing binding imported from ‘Prelude’ at Test/DejaFu/Deterministic/Internal/Memory.hs:6:8-48 (and originally defined in ‘GHC.Base’) [ 9 of 19] Compiling Test.DejaFu.Deterministic.Internal ( Test/DejaFu/Deterministic/Internal.hs, dist/build/Test/DejaFu/Deterministic/Internal.o ) Test/DejaFu/Deterministic/Internal.hs:196:39: error: • Cannot instantiate unification variable ‘t0’ with a type involving foralls: (forall b. M n r s b -> M n r s b) -> Action n r s GHC doesn't yet support impredicative polymorphism • In the first argument of ‘stepFork’, namely ‘a’ In the expression: stepFork a b In a case alternative: AFork a b -> stepFork a b • Relevant bindings include b :: ThreadId -> Action n r s (bound at Test/DejaFu/Deterministic/Internal.hs:196:14) a :: (forall b. M n r s b -> M n r s b) -> Action n r s (bound at Test/DejaFu/Deterministic/Internal.hs:196:12) stepFork :: forall a (m :: * -> *) t. t -> (ThreadId -> Action n r s) -> m (Either a (Threads n r s, IdSource, ThreadAction, WriteBuffer r, Int)) (bound at Test/DejaFu/Deterministic/Internal.hs:232:5) stepMyTId :: forall a (m :: * -> *). Monad m => (ThreadId -> Action n r s) -> m (Either a (Threads n r s, IdSource, ThreadAction, WriteBuffer r, Int)) (bound at Test/DejaFu/Deterministic/Internal.hs:237:5) stepGetNumCapabilities :: forall a (m :: * -> *). Monad m => (Int -> Action n r s) -> m (Either a (Threads n r s, IdSource, ThreadAction, WriteBuffer r, Int)) (bound at Test/DejaFu/Deterministic/Internal.hs:240:5) stepSetNumCapabilities :: forall a (m :: * -> *). Monad m => Int -> Action n r s -> m (Either a (Threads n r s, IdSource, ThreadAction, WriteBuffer r, Int)) (bound at Test/DejaFu/Deterministic/Internal.hs:243:5) (Some bindings suppressed; use -fmax-relevant-binds=N or -fno-max-relevant-binds) Test/DejaFu/Deterministic/Internal.hs:233:36: error: • Couldn't match expected type ‘(forall b. M n r s b -> M n r s b) -> Action n r s’ with actual type ‘t’ ‘t’ is untouchable inside the constraints: () bound by the inferred type of threads' :: Threads n r s at Test/DejaFu/Deterministic/Internal.hs:233:7-44 ‘t’ is a rigid type variable bound by the inferred type of stepFork :: t -> (ThreadId -> Action n r s) -> m (Either a (Threads n r s, IdSource, ThreadAction, WriteBuffer r, Int)) at Test/DejaFu/Deterministic/Internal.hs:232:5 Possible fix: add a type signature for ‘stepFork’ • In the third argument of ‘launch’, namely ‘a’ In the expression: launch tid newtid a threads In an equation for ‘threads'’: threads' = launch tid newtid a threads • Relevant bindings include threads' :: Threads n r s (bound at Test/DejaFu/Deterministic/Internal.hs:233:7) b :: ThreadId -> Action n r s (bound at Test/DejaFu/Deterministic/Internal.hs:232:16) a :: t (bound at Test/DejaFu/Deterministic/Internal.hs:232:14) stepFork :: t -> (ThreadId -> Action n r s) -> m (Either a (Threads n r s, IdSource, ThreadAction, WriteBuffer r, Int)) (bound at Test/DejaFu/Deterministic/Internal.hs:232:5) stepMyTId :: forall a (m :: * -> *). Monad m => (ThreadId -> Action n r s) -> m (Either a (Threads n r s, IdSource, ThreadAction, WriteBuffer r, Int)) (bound at Test/DejaFu/Deterministic/Internal.hs:237:5) stepGetNumCapabilities :: forall a (m :: * -> *). Monad m => (Int -> Action n r s) -> m (Either a (Threads n r s, IdSource, ThreadAction, WriteBuffer r, Int)) (bound at Test/DejaFu/Deterministic/Internal.hs:240:5) (Some bindings suppressed; use -fmax-relevant-binds=N or -fno-max-relevant-binds) cabal: Leaving directory '/tmp/cabal-tmp-31228/dejafu-0.2.0.0' cabal: Error: some packages failed to install: dejafu-0.2.0.0 failed during the building phase. The exception was: ExitFailure 1 hunit-dejafu-0.2.0.0 depends on dejafu-0.2.0.0 which failed to install.