Resolving dependencies... Configuring ansi-terminal-0.6.2.3... Configuring SHA-1.6.4.2... Building ansi-terminal-0.6.2.3... Building SHA-1.6.4.2... Installed ansi-terminal-0.6.2.3 Configuring appar-0.1.4... Building appar-0.1.4... Installed appar-0.1.4 Configuring auto-update-0.1.4... Building auto-update-0.1.4... Installed auto-update-0.1.4 Configuring base-compat-0.9.1... Building base-compat-0.9.1... Configuring base16-bytestring-0.1.1.6... Installed SHA-1.6.4.2 Building base16-bytestring-0.1.1.6... Configuring byteable-0.1.1... Installed base-compat-0.9.1 Configuring base64-bytestring-1.0.0.1... Installed base16-bytestring-0.1.1.6 Building byteable-0.1.1... Building base64-bytestring-1.0.0.1... Configuring bytestring-builder-0.10.8.1.0... Installed byteable-0.1.1 Building bytestring-builder-0.10.8.1.0... Configuring byteorder-1.0.4... Installed bytestring-builder-0.10.8.1.0 Configuring cereal-0.5.4.0... Installed base64-bytestring-1.0.0.1 Building byteorder-1.0.4... Building cereal-0.5.4.0... Configuring data-default-class-0.1.2.0... Installed byteorder-1.0.4 Building data-default-class-0.1.2.0... Configuring data-binary-ieee754-0.4.4... Installed data-default-class-0.1.2.0 Building data-binary-ieee754-0.4.4... Configuring easy-file-0.2.1... Installed data-binary-ieee754-0.4.4 Configuring dlist-0.8.0.2... Installed cereal-0.5.4.0 Building easy-file-0.2.1... Building dlist-0.8.0.2... Configuring failure-0.2.0.3... Installed easy-file-0.2.1 Building failure-0.2.0.3... Configuring file-embed-0.0.10... Installed dlist-0.8.0.2 Building file-embed-0.0.10... Configuring ghc-paths-0.1.0.9... Installed failure-0.2.0.3 Configuring memory-0.13... Installed file-embed-0.0.10 Building memory-0.13... Building ghc-paths-0.1.0.9... Configuring hourglass-0.2.10... Installed ghc-paths-0.1.0.9 Building hourglass-0.2.10... Configuring network-2.6.3.1... Installed memory-0.13 Building network-2.6.3.1... Configuring mtl-2.2.1... Installed hourglass-0.2.10 Building mtl-2.2.1... Configuring old-locale-1.0.0.7... Installed mtl-2.2.1 Building old-locale-1.0.0.7... Configuring primitive-0.6.1.0... Installed network-2.6.3.1 Configuring random-1.1... Installed old-locale-1.0.0.7 Building primitive-0.6.1.0... Building random-1.1... Configuring stm-2.4.4.1... Installed random-1.1 Building stm-2.4.4.1... Configuring semigroups-0.18.2... Installed primitive-0.6.1.0 Building semigroups-0.18.2... Configuring stringsearch-0.3.6.6... Installed semigroups-0.18.2 Configuring time-locale-compat-0.1.1.3... Installed stm-2.4.4.1 Building stringsearch-0.3.6.6... Building time-locale-compat-0.1.1.3... Configuring text-1.2.2.1... Installed time-locale-compat-0.1.1.3 Building text-1.2.2.1... Configuring transformers-compat-0.5.1.4... Installed stringsearch-0.3.6.6 Building transformers-compat-0.5.1.4... Configuring word8-0.1.2... Installed transformers-compat-0.5.1.4 Building word8-0.1.2... Configuring unix-compat-0.4.3.1... Installed word8-0.1.2 Building unix-compat-0.4.3.1... Configuring zlib-0.6.1.2... Installed unix-compat-0.4.3.1 Building zlib-0.6.1.2... Configuring ansi-wl-pprint-0.6.7.3... Installed zlib-0.6.1.2 Building ansi-wl-pprint-0.6.7.3... Installed text-1.2.2.1 Configuring data-default-instances-containers-0.0.1... Building data-default-instances-containers-0.0.1... Configuring data-default-instances-dlist-0.0.1... Installed data-default-instances-containers-0.0.1 Installed ansi-wl-pprint-0.6.7.3 Configuring securemem-0.1.9... Building data-default-instances-dlist-0.0.1... Building securemem-0.1.9... Configuring cryptonite-0.20... Installed data-default-instances-dlist-0.0.1 Building cryptonite-0.20... Configuring pem-0.2.2... Installed securemem-0.1.9 Building pem-0.2.2... Configuring asn1-types-0.3.2... Installed pem-0.2.2 Building asn1-types-0.3.2... Configuring iproute-1.7.1... Installed asn1-types-0.3.2 Building iproute-1.7.1... Configuring simple-sendfile-0.2.25... Installed iproute-1.7.1 Building simple-sendfile-0.2.25... Configuring socks-0.5.5... Installed simple-sendfile-0.2.25 Building socks-0.5.5... Configuring old-time-1.1.0.3... Installed socks-0.5.5 Building old-time-1.1.0.3... Configuring data-default-instances-old-locale-0.0.1... Installed old-time-1.1.0.3 Building data-default-instances-old-locale-0.0.1... Configuring async-2.1.1... Installed data-default-instances-old-locale-0.0.1 Building async-2.1.1... Configuring vector-0.11.0.0... Installed async-2.1.1 Building vector-0.11.0.0... Configuring exceptions-0.8.3... Installed cryptonite-0.20 Building exceptions-0.8.3... Configuring MonadRandom-0.4.2.3... Installed exceptions-0.8.3 Building MonadRandom-0.4.2.3... Configuring mmorph-1.0.9... Installed MonadRandom-0.4.2.3 Building mmorph-1.0.9... Configuring tagged-0.8.5... Installed mmorph-1.0.9 Building tagged-0.8.5... Configuring transformers-base-0.4.4... Installed tagged-0.8.5 Building transformers-base-0.4.4... Installed transformers-base-0.4.4 Configuring blaze-builder-0.4.0.2... Building blaze-builder-0.4.0.2... Configuring hashable-1.2.4.0... Installed vector-0.11.0.0 Configuring mime-types-0.1.0.7... Installed blaze-builder-0.4.0.2 Building hashable-1.2.4.0... Building mime-types-0.1.0.7... Configuring parsec-3.1.11... Installed hashable-1.2.4.0 Building parsec-3.1.11... Configuring xml-types-0.3.6... Installed mime-types-0.1.0.7 Building xml-types-0.3.6... Installed parsec-3.1.11 Configuring optparse-applicative-0.13.0.0... Building optparse-applicative-0.13.0.0... Installed xml-types-0.3.6 Configuring asn1-encoding-0.9.4... Building asn1-encoding-0.9.4... Configuring crypto-cipher-types-0.0.9... Installed asn1-encoding-0.9.4 Building crypto-cipher-types-0.0.9... Configuring unix-time-0.3.7... Installed optparse-applicative-0.13.0.0 Building unix-time-0.3.7... Configuring data-default-0.7.1.1... Installed crypto-cipher-types-0.0.9 Building data-default-0.7.1.1... Configuring hint-0.6.0... Installed unix-time-0.3.7 Configuring cryptohash-0.11.9... Installed data-default-0.7.1.1 Building hint-0.6.0... Building cryptohash-0.11.9... Configuring random-shuffle-0.0.4... Installed cryptohash-0.11.9 Building random-shuffle-0.0.4... Configuring monad-control-1.0.1.0... Installed random-shuffle-0.0.4 Building monad-control-1.0.1.0... Configuring crypto-random-0.0.9... Installed hint-0.6.0 Configuring blaze-markup-0.7.1.1... Installed monad-control-1.0.1.0 Building crypto-random-0.0.9... Building blaze-markup-0.7.1.1... Configuring cookie-0.4.2.1... Installed crypto-random-0.0.9 Configuring streaming-commons-0.1.16... Installed blaze-markup-0.7.1.1 Building cookie-0.4.2.1... Building streaming-commons-0.1.16... Configuring case-insensitive-1.2.0.7... Installed cookie-0.4.2.1 Building case-insensitive-1.2.0.7... Configuring hashtables-1.2.1.0... Installed case-insensitive-1.2.0.7 Building hashtables-1.2.1.0... Configuring lio-0.11.6.0... Installed streaming-commons-0.1.16 Building lio-0.11.6.0... Configuring psqueues-0.2.2.3... Installed hashtables-1.2.1.0 Building psqueues-0.2.2.3... Configuring scientific-0.3.4.9... Installed lio-0.11.6.0 Building scientific-0.3.4.9... Configuring unordered-containers-0.2.7.1... Installed psqueues-0.2.2.3 Configuring void-0.7.1... Installed scientific-0.3.4.9 Building unordered-containers-0.2.7.1... Building void-0.7.1... Configuring network-uri-2.6.1.0... Installed void-0.7.1 Building network-uri-2.6.1.0... Installed network-uri-2.6.1.0 Configuring asn1-parse-0.9.4... Building asn1-parse-0.9.4... Configuring cipher-aes-0.2.11... Installed unordered-containers-0.2.7.1 Configuring fast-logger-2.4.7... Installed asn1-parse-0.9.4 Building cipher-aes-0.2.11... Building fast-logger-2.4.7... Configuring bson-0.3.2.3... Installed fast-logger-2.4.7 Building bson-0.3.2.3... Configuring lifted-base-0.2.3.8... Installed cipher-aes-0.2.11 Building lifted-base-0.2.3.8... Configuring http-types-0.9.1... Installed lifted-base-0.2.3.8 Building http-types-0.9.1... Configuring blaze-html-0.8.1.3... Installed bson-0.3.2.3 Building blaze-html-0.8.1.3... Configuring http2-1.6.2... Installed http-types-0.9.1 Building http2-1.6.2... Configuring attoparsec-0.13.1.0... Installed http2-1.6.2 Building attoparsec-0.13.1.0... Installed blaze-html-0.8.1.3 Configuring x509-1.6.5... Building x509-1.6.5... Configuring vault-0.3.0.6... Installed x509-1.6.5 Building vault-0.3.0.6... Configuring cprng-aes-0.6.1... Installed attoparsec-0.13.1.0 Building cprng-aes-0.6.1... Configuring resourcet-1.1.8.1... Installed vault-0.3.0.6 Building resourcet-1.1.8.1... Configuring http-client-0.5.4... Installed cprng-aes-0.6.1 Building http-client-0.5.4... Installed resourcet-1.1.8.1 Configuring x509-store-1.6.2... Building x509-store-1.6.2... Configuring http-date-0.0.6.1... Installed x509-store-1.6.2 Building http-date-0.0.6.1... Configuring aeson-1.0.2.1... Installed http-client-0.5.4 Configuring nonce-1.0.2... Installed http-date-0.0.6.1 Building aeson-1.0.2.1... Building nonce-1.0.2... Configuring wai-3.2.1.1... Installed nonce-1.0.2 Building wai-3.2.1.1... Configuring conduit-1.2.8... Installed wai-3.2.1.1 Building conduit-1.2.8... Installed conduit-1.2.8 Configuring x509-system-1.6.4... Building x509-system-1.6.4... Configuring x509-validation-1.6.5... Installed x509-system-1.6.4 Building x509-validation-1.6.5... Installed x509-validation-1.6.5 Configuring wai-logger-2.3.0... Building wai-logger-2.3.0... Configuring warp-3.2.9... Installed aeson-1.0.2.1 Building warp-3.2.9... Installed wai-logger-2.3.0 Configuring conduit-extra-1.1.15... Building conduit-extra-1.1.15... Installed conduit-extra-1.1.15 Configuring tls-1.3.8... Building tls-1.3.8... Configuring wai-extra-3.0.19... Installed warp-3.2.9 Building wai-extra-3.0.19... Configuring xml-conduit-1.4.0.2... Installed wai-extra-3.0.19 Building xml-conduit-1.4.0.2... Installed tls-1.3.8 Configuring connection-0.2.6... Building connection-0.2.6... Configuring wai-app-static-3.1.6.1... Installed connection-0.2.6 Building wai-app-static-3.1.6.1... Configuring mongoDB-2.1.1.1... Installed xml-conduit-1.4.0.2 Building mongoDB-2.1.1.1... Installed wai-app-static-3.1.6.1 Configuring http-client-tls-0.3.3... Building http-client-tls-0.3.3... Configuring tagstream-conduit-0.5.5.3... Installed mongoDB-2.1.1.1 Building tagstream-conduit-0.5.5.3... Installed http-client-tls-0.3.3 Configuring http-conduit-2.2.3... Building http-conduit-2.2.3... Installed tagstream-conduit-0.5.5.3 Installed http-conduit-2.2.3 Configuring authenticate-1.3.3.2... Building authenticate-1.3.3.2... Installed authenticate-1.3.3.2 Configuring hails-0.11.1.1... Building hails-0.11.1.1... Failed to install hails-0.11.1.1 Build log ( /home/builder/.cabal/logs/hails-0.11.1.1.log ): cabal: Entering directory '/tmp/cabal-tmp-12051/hails-0.11.1.1' Configuring hails-0.11.1.1... Building hails-0.11.1.1... Preprocessing library hails-0.11.1.1... Hails/Data/Hson.hs:10:14: warning: -XOverlappingInstances is deprecated: instead use per-instance pragmas OVERLAPPING/OVERLAPPABLE/OVERLAPS [ 1 of 25] Compiling Paths_hails ( dist/build/autogen/Paths_hails.hs, dist/build/Paths_hails.o ) [ 2 of 25] Compiling Hails.Version ( Hails/Version.hs, dist/build/Hails/Version.o ) Hails/Version.hs:1:14: warning: [-Wtrustworthy-safe] ‘Hails.Version’ is marked as Trustworthy but has been inferred as safe! [ 3 of 25] Compiling Hails.HttpServer.Types ( Hails/HttpServer/Types.hs, dist/build/Hails/HttpServer/Types.o ) [ 4 of 25] Compiling Hails.HttpServer.Auth ( Hails/HttpServer/Auth.hs, dist/build/Hails/HttpServer/Auth.o ) Hails/HttpServer/Auth.hs:88:9: error: • Couldn't match type ‘Response’ with ‘IO ResponseReceived’ Expected type: (Response -> IO ResponseReceived) -> IO ResponseReceived Actual type: (Response -> IO ResponseReceived) -> Response • In a stmt of a 'do' block: assertion <- S8.concat `liftM` (requestBody req0 C.$$ C.consume) In the expression: do { assertion <- S8.concat `liftM` (requestBody req0 C.$$ C.consume); muser <- withManager $ checkAssertion audience (T.decodeUtf8 $ assertion); case muser of { Nothing -> return $ responseLBS status401 [] "" Just usr -> let ... in return $ responseLBS status200 ... "" } } In a case alternative: _ | doLogin -> do { assertion <- S8.concat `liftM` (requestBody req0 C.$$ C.consume); muser <- withManager $ checkAssertion audience (T.decodeUtf8 $ assertion); case muser of { Nothing -> return $ responseLBS status401 ... "" Just usr -> ... } } Hails/HttpServer/Auth.hs:88:41: error: • Couldn't match type ‘IO S8.ByteString’ with ‘C.ConduitM () S8.ByteString ((->) (Response -> IO ResponseReceived)) ()’ Expected type: C.Source ((->) (Response -> IO ResponseReceived)) S8.ByteString Actual type: IO S8.ByteString • In the first argument of ‘(C.$$)’, namely ‘requestBody req0’ In the second argument of ‘liftM’, namely ‘(requestBody req0 C.$$ C.consume)’ In a stmt of a 'do' block: assertion <- S8.concat `liftM` (requestBody req0 C.$$ C.consume) Hails/HttpServer/Auth.hs:98:21: error: • Couldn't match type ‘Response’ with ‘IO ResponseReceived’ Expected type: (Response -> IO ResponseReceived) -> IO ResponseReceived Actual type: (Response -> IO ResponseReceived) -> Response • In the expression: return $ responseLBS status200 [("Set-Cookie", delCookie "_hails_user"), ("Set-Cookie", delCookie "_hails_user_hmac")] "" In a case alternative: _ | doLogout -> return $ responseLBS status200 [("Set-Cookie", delCookie "_hails_user"), ("Set-Cookie", delCookie "_hails_user_hmac")] "" In a stmt of a 'do' block: case () of { _ | doLogin -> do { assertion <- S8.concat `liftM` (requestBody req0 C.$$ C.consume); muser <- withManager $ checkAssertion audience (T.decodeUtf8 $ assertion); .... } _ | doLogout -> return $ responseLBS status200 [("Set-Cookie", delCookie "_hails_user"), ("Set-Cookie", delCookie "_hails_user_hmac")] "" _ -> let mauth = ... .... in requireLoginMiddleware (return $ respRedir req) app0 req } Hails/HttpServer/Auth.hs:147:7: error: • Couldn't match type ‘Response’ with ‘IO ResponseReceived’ Expected type: (Response -> IO ResponseReceived) -> IO ResponseReceived Actual type: (Response -> IO ResponseReceived) -> Response • In a stmt of a 'do' block: return $ responseLBS status302 [("Set-Cookie", cookie), ("Location", redirectTo)] "" In the expression: do { let cookie = toByteString . renderSetCookie $ ...; let redirectTo = fromMaybe "/" $ lookup "Referer" $ requestHeaders req0; return $ responseLBS status302 [("Set-Cookie", cookie), ("Location", redirectTo)] "" } In a case alternative: "_hails" : "logout" : _ -> do { let cookie = ...; let redirectTo = ...; return $ responseLBS status302 [("Set-Cookie", cookie), ....] "" } Hails/HttpServer/Auth.hs:152:7: error: • Couldn't match type ‘Response’ with ‘IO ResponseReceived’ Expected type: (Response -> IO ResponseReceived) -> IO ResponseReceived Actual type: (Response -> IO ResponseReceived) -> Response • In a stmt of a 'do' block: oidResp <- withManager $ authenticateClaimed qry In the expression: do { let qry = map (\ (n, v) -> ...) $ filter (isJust . snd) $ parseQueryText $ rawQueryString req0; oidResp <- withManager $ authenticateClaimed qry; liftIO $ print $ oirParams oidResp; let cookie = toByteString . renderSetCookie $ ...; .... } In a case alternative: "_hails" : "login" : _ -> do { let qry = ...; oidResp <- withManager $ authenticateClaimed qry; liftIO $ print $ oirParams oidResp; .... } Hails/HttpServer/Auth.hs:152:18: error: • Couldn't match type ‘(->) (Response -> IO ResponseReceived)’ with ‘IO’ arising from a functional dependency between: constraint ‘monad-control-1.0.1.0:Control.Monad.Trans.Control.MonadBaseControl IO ((->) (Response -> IO ResponseReceived))’ arising from a use of ‘withManager’ instance ‘monad-control-1.0.1.0:Control.Monad.Trans.Control.MonadBaseControl ((->) r) ((->) r)’ at • In a stmt of a 'do' block: oidResp <- withManager $ authenticateClaimed qry In the expression: do { let qry = map (\ (n, v) -> ...) $ filter (isJust . snd) $ parseQueryText $ rawQueryString req0; oidResp <- withManager $ authenticateClaimed qry; liftIO $ print $ oirParams oidResp; let cookie = toByteString . renderSetCookie $ ...; .... } In a case alternative: "_hails" : "login" : _ -> do { let qry = ...; oidResp <- withManager $ authenticateClaimed qry; liftIO $ print $ oirParams oidResp; .... } Hails/HttpServer/Auth.hs:191:3: error: • Couldn't match expected type ‘(Response -> IO ResponseReceived) -> IO ResponseReceived’ with actual type ‘IO Response’ • In a stmt of a 'do' block: appResp <- app0 req In the expression: do { appResp <- app0 req; if hasLogin appResp && notLoggedIn then loginResp else return appResp } In an equation for ‘requireLoginMiddleware’: requireLoginMiddleware loginResp app0 req = do { appResp <- app0 req; if hasLogin appResp && notLoggedIn then loginResp else return appResp } where hasLogin r = "X-Hails-Login" `isIn` responseHeaders r notLoggedIn = not $ "X-Hails-User" `isIn` requestHeaders req isIn n xs = isJust $ lookup n xs Hails/HttpServer/Auth.hs:191:14: error: • Couldn't match expected type ‘IO Response’ with actual type ‘(Response -> IO ResponseReceived) -> IO ResponseReceived’ • Probable cause: ‘app0’ is applied to too few arguments In a stmt of a 'do' block: appResp <- app0 req In the expression: do { appResp <- app0 req; if hasLogin appResp && notLoggedIn then loginResp else return appResp } In an equation for ‘requireLoginMiddleware’: requireLoginMiddleware loginResp app0 req = do { appResp <- app0 req; if hasLogin appResp && notLoggedIn then loginResp else return appResp } where hasLogin r = "X-Hails-Login" `isIn` responseHeaders r notLoggedIn = not $ "X-Hails-User" `isIn` requestHeaders req isIn n xs = isJust $ lookup n xs cabal: Leaving directory '/tmp/cabal-tmp-12051/hails-0.11.1.1' cabal: Error: some packages failed to install: hails-0.11.1.1 failed during the building phase. The exception was: ExitFailure 1