Resolving dependencies... Starting StateVar-1.2.2 Starting base64-bytestring-1.2.1.0 Starting base-orphans-0.8.6 Starting base-compat-0.11.2 Building StateVar-1.2.2 Building base64-bytestring-1.2.1.0 Building base-orphans-0.8.6 Building base-compat-0.11.2 Completed StateVar-1.2.2 Starting cabal-doctest-1.0.9 Building cabal-doctest-1.0.9 Completed base64-bytestring-1.2.1.0 Starting call-stack-0.4.0 Building call-stack-0.4.0 Completed call-stack-0.4.0 Starting dlist-1.0 Completed cabal-doctest-1.0.9 Starting hashable-1.3.5.0 Building dlist-1.0 Building hashable-1.3.5.0 Completed base-orphans-0.8.6 Starting indexed-traversable-0.1.2 Completed base-compat-0.11.2 Starting integer-logarithms-1.0.3.1 Building indexed-traversable-0.1.2 Building integer-logarithms-1.0.3.1 Completed integer-logarithms-1.0.3.1 Starting keera-callbacks-0.1 Completed dlist-1.0 Starting parallel-3.2.2.0 Building keera-callbacks-0.1 Building parallel-3.2.2.0 Completed hashable-1.3.5.0 Starting primitive-0.7.3.0 Building primitive-0.7.3.0 Completed keera-callbacks-0.1 Starting ref-tf-0.4.0.2 Completed indexed-traversable-0.1.2 Starting reflection-2.1.6 Building ref-tf-0.4.0.2 Building reflection-2.1.6 Completed parallel-3.2.2.0 Starting semigroups-0.20 Building semigroups-0.20 Completed ref-tf-0.4.0.2 Starting splitmix-0.1.0.4 Building splitmix-0.1.0.4 Completed semigroups-0.20 Starting tagged-0.8.6.1 Building tagged-0.8.6.1 Completed splitmix-0.1.0.4 Starting th-abstraction-0.4.3.0 Building th-abstraction-0.4.3.0 Completed reflection-2.1.6 Starting transformers-compat-0.7.1 Building transformers-compat-0.7.1 Completed tagged-0.8.6.1 Starting unliftio-core-0.2.0.1 Building unliftio-core-0.2.0.1 Completed unliftio-core-0.2.0.1 Starting void-0.7.3 Building void-0.7.3 Completed transformers-compat-0.7.1 Starting contravariant-1.5.5 Completed void-0.7.3 Starting base-compat-batteries-0.11.2 Building contravariant-1.5.5 Completed th-abstraction-0.4.3.0 Starting unordered-containers-0.2.18.0 Building base-compat-batteries-0.11.2 Building unordered-containers-0.2.18.0 Completed primitive-0.7.3.0 Starting time-compat-1.9.6.1 Building time-compat-1.9.6.1 Completed contravariant-1.5.5 Starting text-short-0.1.5 Building text-short-0.1.5 Completed base-compat-batteries-0.11.2 Starting data-fix-0.3.2 Building data-fix-0.3.2 Completed time-compat-1.9.6.1 Starting case-insensitive-1.2.1.0 Building case-insensitive-1.2.1.0 Completed text-short-0.1.5 Starting OneTuple-0.3.1 Building OneTuple-0.3.1 Completed data-fix-0.3.2 Starting random-1.2.1 Building random-1.2.1 Completed case-insensitive-1.2.1.0 Starting distributive-0.6.2.1 Building distributive-0.6.2.1 Completed OneTuple-0.3.1 Starting transformers-base-0.4.6 Building transformers-base-0.4.6 Completed unordered-containers-0.2.18.0 Starting vector-0.12.3.1 Completed distributive-0.6.2.1 Starting scientific-0.3.7.0 Building vector-0.12.3.1 Building scientific-0.3.7.0 Completed transformers-base-0.4.6 Starting keera-hails-reactivevalues-0.8.0 Building keera-hails-reactivevalues-0.8.0 Completed keera-hails-reactivevalues-0.8.0 Starting http-types-0.12.3 Building http-types-0.12.3 Completed scientific-0.3.7.0 Starting comonad-5.0.8 Building comonad-5.0.8 Completed random-1.2.1 Starting attoparsec-0.14.4 Building attoparsec-0.14.4 Completed http-types-0.12.3 Starting uuid-types-1.0.5 Building uuid-types-1.0.5 Completed comonad-5.0.8 Starting QuickCheck-2.14.2 Building QuickCheck-2.14.2 Completed uuid-types-1.0.5 Starting bifunctors-5.5.11 Building bifunctors-5.5.11 Completed attoparsec-0.14.4 Completed bifunctors-5.5.11 Starting profunctors-5.6.2 Starting semigroupoids-5.3.7 Building profunctors-5.6.2 Building semigroupoids-5.3.7 Completed QuickCheck-2.14.2 Starting assoc-1.0.2 Building assoc-1.0.2 Completed assoc-1.0.2 Starting these-1.1.1.1 Building these-1.1.1.1 Completed profunctors-5.6.2 Starting invariant-0.5.5 Building invariant-0.5.5 Completed semigroupoids-5.3.7 Starting free-5.1.7 Completed these-1.1.1.1 Starting strict-0.4.0.1 Completed vector-0.12.3.1 Starting indexed-traversable-instances-0.1.1 Building free-5.1.7 Building strict-0.4.0.1 Building indexed-traversable-instances-0.1.1 Completed indexed-traversable-instances-0.1.1 Starting witherable-0.4.2 Building witherable-0.4.2 Completed invariant-0.5.5 Starting semialign-1.2.0.1 Building semialign-1.2.0.1 Completed strict-0.4.0.1 Completed witherable-0.4.2 Completed semialign-1.2.0.1 Starting aeson-2.0.3.0 Building aeson-2.0.3.0 Completed free-5.1.7 Starting adjunctions-4.4 Building adjunctions-4.4 Completed adjunctions-4.4 Starting kan-extensions-5.2.3 Building kan-extensions-5.2.3 Completed kan-extensions-5.2.3 Starting lens-4.19.2 Building lens-4.19.2 Completed aeson-2.0.3.0 Completed lens-4.19.2 Starting keera-hails-reactive-cbmvar-0.8.0 Starting jsaddle-0.9.8.2 Building keera-hails-reactive-cbmvar-0.8.0 Building jsaddle-0.9.8.2 Completed keera-hails-reactive-cbmvar-0.8.0 Completed jsaddle-0.9.8.2 Starting jsaddle-dom-0.9.5.0 Building jsaddle-dom-0.9.5.0 Completed jsaddle-dom-0.9.5.0 Starting ghcjs-dom-jsaddle-0.9.5.0 Building ghcjs-dom-jsaddle-0.9.5.0 Completed ghcjs-dom-jsaddle-0.9.5.0 Starting ghcjs-dom-0.9.5.0 Building ghcjs-dom-0.9.5.0 Completed ghcjs-dom-0.9.5.0 Starting keera-hails-reactive-htmldom-0.8.0 Building keera-hails-reactive-htmldom-0.8.0 Failed to install keera-hails-reactive-htmldom-0.8.0 Build log ( /home/builder/.cabal/logs/ghc-8.10.2/keera-hails-reactive-htmldom-0.8.0-Gz7TSINKgO05y9cZRq2bl9.log ): cabal: Entering directory '/tmp/cabal-tmp-1522/keera-hails-reactive-htmldom-0.8.0' Configuring keera-hails-reactive-htmldom-0.8.0... Preprocessing library for keera-hails-reactive-htmldom-0.8.0.. Building library for keera-hails-reactive-htmldom-0.8.0.. [1 of 1] Compiling Hails.MVC.View.HTML ( src/Hails/MVC/View/HTML.hs, dist/build/Hails/MVC/View/HTML.o, dist/build/Hails/MVC/View/HTML.dyn_o ) src/Hails/MVC/View/HTML.hs:33:23: error: " Couldn't match type jsaddle-0.9.8.2:Language.Javascript.JSaddle.Types.JSM with IO Expected type: ReactiveFieldReadWrite IO String Actual type: ReactiveFieldReadWrite jsaddle-0.9.8.2:Language.Javascript.JSaddle.Types.JSM String " In the expression: ReactiveFieldReadWrite setter getter notifier In an equation for inputTextReactive: inputTextReactive x = ReactiveFieldReadWrite setter getter notifier where setter = setValue x getter = getValue x notifier p = void $ on x input (liftIO p) | 33 | inputTextReactive x = ReactiveFieldReadWrite setter getter notifier | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Hails/MVC/View/HTML.hs:33:60: error: " Couldn't match type jsaddle-0.9.8.2:Language.Javascript.JSaddle.Types.JSM with IO Expected type: FieldNotifier jsaddle-0.9.8.2:Language.Javascript.JSaddle.Types.JSM String Actual type: IO () -> jsaddle-0.9.8.2:Language.Javascript.JSaddle.Types.JSM () " In the third argument of ReactiveFieldReadWrite, namely notifier In the expression: ReactiveFieldReadWrite setter getter notifier In an equation for inputTextReactive: inputTextReactive x = ReactiveFieldReadWrite setter getter notifier where setter = setValue x getter = getValue x notifier p = void $ on x input (liftIO p) | 33 | inputTextReactive x = ReactiveFieldReadWrite setter getter notifier | ^^^^^^^^ src/Hails/MVC/View/HTML.hs:39:59: error: " Couldn't match type jsaddle-0.9.8.2:Language.Javascript.JSaddle.Types.JSM with IO Expected type: IO () Actual type: jsaddle-0.9.8.2:Language.Javascript.JSaddle.Types.JSM () " In the expression: void $ on e' click (liftIO p) In the second argument of ReactiveFieldRead, namely (\ p -> void $ on e' click (liftIO p)) In the expression: ReactiveFieldRead (return ()) (\ p -> void $ on e' click (liftIO p)) | 39 | htmlElementClick e = ReactiveFieldRead (return ()) (\p -> void $ on e' click (liftIO p)) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Hails/MVC/View/HTML.hs:53:5: error: " Couldn't match type jsaddle-0.9.8.2:Language.Javascript.JSaddle.Types.JSM with IO Expected type: IO () Actual type: jsaddle-0.9.8.2:Language.Javascript.JSaddle.Types.JSM () " In a stmt of a 'do' block: void $ on socket message (ask >>= \ dt -> getData dt >>= \ js -> liftIO (fromJSValUnchecked js) >>= \ jss -> ...) In the expression: do p <- newCBMVar "" void $ on socket message (ask >>= \ dt -> getData dt >>= \ js -> ...) let getter = readCBMVar p notifier n = installCallbackCBMVar p n .... return (ReactiveFieldReadWrite setter getter notifier) In an equation for websocketReactive: websocketReactive socket = do p <- newCBMVar "" void $ on socket message (ask >>= \ dt -> getData dt >>= ...) let getter = ... .... .... | 53 | void $ on socket message (ask >>= \dt -> getData dt >>= \js -> liftIO (fromJSValUnchecked js) >>= \jss -> liftIO (writeCBMVar p (show (jss :: JSString)))) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Hails/MVC/View/HTML.hs:53:76: error: " Couldn't match expected type IO JSString with actual type jsaddle-0.9.8.2:Language.Javascript.JSaddle.Types.JSM a0 " In the first argument of liftIO, namely (fromJSValUnchecked js) In the first argument of (>>=), namely liftIO (fromJSValUnchecked js) In the expression: liftIO (fromJSValUnchecked js) >>= \ jss -> liftIO (writeCBMVar p (show (jss :: JSString))) | 53 | void $ on socket message (ask >>= \dt -> getData dt >>= \js -> liftIO (fromJSValUnchecked js) >>= \jss -> liftIO (writeCBMVar p (show (jss :: JSString)))) | ^^^^^^^^^^^^^^^^^^^^^ src/Hails/MVC/View/HTML.hs:62:38: error: " Couldn't match type jsaddle-0.9.8.2:Language.Javascript.JSaddle.Types.JSM with IO Expected type: IO () Actual type: jsaddle-0.9.8.2:Language.Javascript.JSaddle.Types.JSM () " In the expression: void $ on s mouseDown (liftIO p) In the second argument of ($), namely \ p -> void $ on s mouseDown (liftIO p) In the expression: eventR $ \ p -> void $ on s mouseDown (liftIO p) | 62 | mouseDownReactive s = eventR $ \p -> void $ on s mouseDown (liftIO p) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/Hails/MVC/View/HTML.hs:67:3: error: " Couldn't match type jsaddle-0.9.8.2:Language.Javascript.JSaddle.Types.JSM with IO Expected type: IO () Actual type: jsaddle-0.9.8.2:Language.Javascript.JSaddle.Types.JSM () " In a stmt of a 'do' block: void $ on e mouseMove (mouseClientXY >>= \ pos -> liftIO (writeCBMVar p pos)) In the expression: do p <- newCBMVar (0, 0) void $ on e mouseMove (mouseClientXY >>= \ pos -> liftIO (writeCBMVar p pos)) return (cbmvarReactiveRO p) In an equation for mousePosElementReactive: mousePosElementReactive e = do p <- newCBMVar (0, 0) void $ on e mouseMove (mouseClientXY >>= \ pos -> liftIO (writeCBMVar p pos)) return (cbmvarReactiveRO p) | 67 | void $ on e mouseMove (mouseClientXY >>= \pos -> liftIO (writeCBMVar p pos)) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cabal: Leaving directory '/tmp/cabal-tmp-1522/keera-hails-reactive-htmldom-0.8.0' cabal: Error: some packages failed to install: keera-hails-reactive-htmldom-0.8.0-Gz7TSINKgO05y9cZRq2bl9 failed during the building phase. The exception was: ExitFailure 1