Build #2 for polysemy-webserver-0.2.1.0

[all reports]

Package polysemy-webserver-0.2.1.0
Install BuildFailed
Docs NotTried
Tests NotTried
Time submitted 2020-08-08 12:27:58.485561228 UTC
Compiler ghc-8.6.3
OS linux
Arch x86_64
Dependencies base-4.12.0.0, bytestring-0.10.8.2, http-types-0.12.3, polysemy-1.3.0.0, polysemy-plugin-0.2.5.0, wai-3.2.2.1, wai-websockets-3.0.1.2, warp-3.3.13, websockets-0.12.7.1
Flags none

Code Coverage

No Code Coverage was submitted for this report.

Build log

[view raw]

Resolving dependencies...
Starting     auto-update-0.1.6
Starting     appar-0.1.8
Starting     SHA-1.6.4.4
Starting     base-compat-0.11.1
Building     appar-0.1.8
Building     auto-update-0.1.6
Building     SHA-1.6.4.4
Building     base-compat-0.11.1
Completed    appar-0.1.8
Starting     base-orphans-0.8.2
Completed    auto-update-0.1.6
Starting     base64-bytestring-1.1.0.0
Building     base-orphans-0.8.2
Building     base64-bytestring-1.1.0.0
Completed    base64-bytestring-1.1.0.0
Starting     basement-0.0.11
Building     basement-0.0.11
Completed    base-orphans-0.8.2
Starting     blaze-builder-0.4.1.0
Building     blaze-builder-0.4.1.0
Completed    base-compat-0.11.1
Starting     bsb-http-chunked-0.0.0.4
Completed    SHA-1.6.4.4
Starting     byteorder-1.0.4
Building     bsb-http-chunked-0.0.0.4
Building     byteorder-1.0.4
Completed    bsb-http-chunked-0.0.0.4
Starting     bytestring-builder-0.10.8.2.0
Completed    byteorder-1.0.4
Starting     cabal-doctest-1.0.8
Building     bytestring-builder-0.10.8.2.0
Building     cabal-doctest-1.0.8
Completed    blaze-builder-0.4.1.0
Starting     clock-0.8
Completed    bytestring-builder-0.10.8.2.0
Starting     colour-2.3.5
Building     clock-0.8
Building     colour-2.3.5
Completed    clock-0.8
Starting     data-default-class-0.1.2.0
Completed    cabal-doctest-1.0.8
Starting     dlist-1.0
Building     data-default-class-0.1.2.0
Building     dlist-1.0
Completed    data-default-class-0.1.2.0
Starting     easy-file-0.2.2
Building     easy-file-0.2.2
Completed    dlist-1.0
Starting     entropy-0.4.1.6
Completed    colour-2.3.5
Starting     exceptions-0.10.4
Completed    easy-file-0.2.2
Starting     file-embed-0.0.13.0
Building     exceptions-0.10.4
Building     file-embed-0.0.13.0
Building     entropy-0.4.1.6
Completed    file-embed-0.0.13.0
Starting     first-class-families-0.8.0.0
Building     first-class-families-0.8.0.0
Completed    exceptions-0.10.4
Starting     ghc-tcplugins-extra-0.3.2
Building     ghc-tcplugins-extra-0.3.2
Completed    entropy-0.4.1.6
Starting     hashable-1.3.0.0
Completed    first-class-families-0.8.0.0
Starting     hourglass-0.2.12
Building     hashable-1.3.0.0
Building     hourglass-0.2.12
Completed    ghc-tcplugins-extra-0.3.2
Starting     integer-logarithms-1.0.3
Building     integer-logarithms-1.0.3
Completed    integer-logarithms-1.0.3
Starting     mime-types-0.1.0.9
Building     mime-types-0.1.0.9
Completed    hashable-1.3.0.0
Starting     network-3.1.2.0
Building     network-3.1.2.0
Completed    hourglass-0.2.12
Starting     network-byte-order-0.1.5
Building     network-byte-order-0.1.5
Completed    mime-types-0.1.0.9
Starting     old-locale-1.0.0.7
Building     old-locale-1.0.0.7
Completed    network-byte-order-0.1.5
Starting     primitive-0.7.1.0
Building     primitive-0.7.1.0
Completed    old-locale-1.0.0.7
Starting     random-1.1
Building     random-1.1
Completed    random-1.1
Starting     semigroups-0.19.1
Building     semigroups-0.19.1
Completed    semigroups-0.19.1
Starting     splitmix-0.1.0.1
Building     splitmix-0.1.0.1
Completed    network-3.1.2.0
Starting     syb-0.7.1
Building     syb-0.7.1
Completed    basement-0.0.11
Starting     tagged-0.8.6
Building     tagged-0.8.6
Completed    splitmix-0.1.0.1
Starting     th-abstraction-0.3.2.0
Building     th-abstraction-0.3.2.0
Completed    syb-0.7.1
Starting     transformers-compat-0.6.5
Building     transformers-compat-0.6.5
Completed    tagged-0.8.6
Starting     type-errors-pretty-0.0.1.1
Building     type-errors-pretty-0.0.1.1
Completed    primitive-0.7.1.0
Starting     unix-compat-0.5.2
Completed    type-errors-pretty-0.0.1.1
Starting     unliftio-core-0.2.0.1
Building     unix-compat-0.5.2
Building     unliftio-core-0.2.0.1
Completed    th-abstraction-0.3.2.0
Starting     void-0.7.3
Building     void-0.7.3
Completed    transformers-compat-0.6.5
Starting     word8-0.1.3
Building     word8-0.1.3
Completed    unliftio-core-0.2.0.1
Starting     zlib-0.6.2.2
Completed    void-0.7.3
Starting     time-manager-0.0.0
Building     zlib-0.6.2.2
Completed    unix-compat-0.5.2
Starting     time-compat-1.9.3
Building     time-manager-0.0.0
Building     time-compat-1.9.3
Completed    word8-0.1.3
Starting     base-compat-batteries-0.11.1
Completed    time-manager-0.0.0
Starting     blaze-markup-0.8.2.7
Building     base-compat-batteries-0.11.1
Building     blaze-markup-0.8.2.7
Completed    time-compat-1.9.3
Starting     cookie-0.4.5
Completed    blaze-markup-0.8.2.7
Starting     ansi-terminal-0.10.3
Building     cookie-0.4.5
Completed    zlib-0.6.2.2
Starting     unordered-containers-0.2.12.0
Building     ansi-terminal-0.10.3
Building     unordered-containers-0.2.12.0
Completed    base-compat-batteries-0.11.1
Starting     psqueues-0.2.7.2
Completed    cookie-0.4.5
Starting     data-fix-0.3.0
Building     psqueues-0.2.7.2
Building     data-fix-0.3.0
Completed    ansi-terminal-0.10.3
Starting     case-insensitive-1.2.1.0
Building     case-insensitive-1.2.1.0
Completed    data-fix-0.3.0
Starting     async-2.2.2
Building     async-2.2.2
Completed    case-insensitive-1.2.1.0
Starting     old-time-1.1.0.3
Completed    async-2.2.2
Starting     uuid-types-1.0.3
Completed    psqueues-0.2.7.2
Starting     simple-sendfile-0.2.30
Building     old-time-1.1.0.3
Building     uuid-types-1.0.3
Building     simple-sendfile-0.2.30
Completed    unordered-containers-0.2.12.0
Starting     iproute-1.7.9
Completed    simple-sendfile-0.2.30
Starting     memory-0.15.0
Building     iproute-1.7.9
Building     memory-0.15.0
Completed    uuid-types-1.0.3
Starting     QuickCheck-2.14.1
Completed    old-time-1.1.0.3
Starting     distributive-0.6.2
Building     QuickCheck-2.14.1
Building     distributive-0.6.2
Completed    iproute-1.7.9
Starting     vector-0.12.1.2
Building     vector-0.12.1.2
Completed    distributive-0.6.2
Starting     scientific-0.3.6.2
Building     scientific-0.3.6.2
Completed    memory-0.15.0
Starting     atomic-primops-0.8.3
Building     atomic-primops-0.8.3
Completed    scientific-0.3.6.2
Starting     type-errors-0.2.0.0
Building     type-errors-0.2.0.0
Completed    atomic-primops-0.8.3
Starting     resourcet-1.2.4.2
Building     resourcet-1.2.4.2
Completed    type-errors-0.2.0.0
Starting     blaze-html-0.9.1.2
Building     blaze-html-0.9.1.2
Completed    resourcet-1.2.4.2
Starting     ansi-wl-pprint-0.6.9
Building     ansi-wl-pprint-0.6.9
Completed    ansi-wl-pprint-0.6.9
Starting     http-types-0.12.3
Building     http-types-0.12.3
Completed    QuickCheck-2.14.1
Starting     streaming-commons-0.2.2.1
Building     streaming-commons-0.2.2.1
Completed    http-types-0.12.3
Starting     vault-0.3.1.4
Building     vault-0.3.1.4
Completed    vault-0.3.1.4
Starting     unix-time-0.4.7
Building     unix-time-0.4.7
Completed    streaming-commons-0.2.2.1
Starting     comonad-5.0.6
Completed    unix-time-0.4.7
Starting     pem-0.2.4
Building     pem-0.2.4
Building     comonad-5.0.6
Completed    pem-0.2.4
Starting     cryptonite-0.27
Building     cryptonite-0.27
Completed    blaze-html-0.9.1.2
Starting     asn1-types-0.3.4
Building     asn1-types-0.3.4
Completed    comonad-5.0.6
Starting     attoparsec-0.13.2.4
Building     attoparsec-0.13.2.4
Completed    asn1-types-0.3.4
Starting     unagi-chan-0.4.1.3
Building     unagi-chan-0.4.1.3
Completed    vector-0.12.1.2
Starting     optparse-applicative-0.15.1.0
Building     optparse-applicative-0.15.1.0
Completed    unagi-chan-0.4.1.3
Starting     http2-2.0.5
Building     http2-2.0.5
Completed    attoparsec-0.13.2.4
Starting     wai-3.2.2.1
Building     wai-3.2.2.1
Completed    optparse-applicative-0.15.1.0
Starting     fast-logger-3.0.1
Building     fast-logger-3.0.1
Completed    wai-3.2.2.1
Starting     bifunctors-5.5.7
Building     bifunctors-5.5.7
Completed    fast-logger-3.0.1
Starting     asn1-encoding-0.9.6
Building     asn1-encoding-0.9.6
Completed    asn1-encoding-0.9.6
Starting     polysemy-1.3.0.0
Building     polysemy-1.3.0.0
Completed    bifunctors-5.5.7
Starting     websockets-0.12.7.1
Building     websockets-0.12.7.1
Completed    http2-2.0.5
Starting     http-date-0.0.8
Building     http-date-0.0.8
Completed    http-date-0.0.8
Starting     wai-logger-2.3.6
Building     wai-logger-2.3.6
Completed    websockets-0.12.7.1
Starting     asn1-parse-0.9.5
Building     asn1-parse-0.9.5
Completed    asn1-parse-0.9.5
Starting     assoc-1.0.1
Building     assoc-1.0.1
Completed    wai-logger-2.3.6
Completed    assoc-1.0.1
Starting     these-1.1.1.1
Building     these-1.1.1.1
Completed    polysemy-1.3.0.0
Starting     polysemy-plugin-0.2.5.0
Completed    these-1.1.1.1
Starting     strict-0.4
Building     strict-0.4
Building     polysemy-plugin-0.2.5.0
Completed    strict-0.4
Starting     aeson-1.5.3.0
Building     aeson-1.5.3.0
Completed    polysemy-plugin-0.2.5.0
Completed    cryptonite-0.27
Starting     x509-1.7.5
Building     x509-1.7.5
Completed    x509-1.7.5
Starting     warp-3.3.13
Building     warp-3.3.13
Completed    aeson-1.5.3.0
Starting     wai-extra-3.0.29.2
Building     wai-extra-3.0.29.2
Completed    warp-3.3.13
Completed    wai-extra-3.0.29.2
Starting     wai-app-static-3.1.7.1
Building     wai-app-static-3.1.7.1
Completed    wai-app-static-3.1.7.1
Starting     wai-websockets-3.0.1.2
Building     wai-websockets-3.0.1.2
Completed    wai-websockets-3.0.1.2
Starting     polysemy-webserver-0.2.1.0
Building     polysemy-webserver-0.2.1.0
Failed to install polysemy-webserver-0.2.1.0
Build log ( /home/builder/.cabal/logs/ghc-8.6.3/polysemy-webserver-0.2.1.0-A1REaII7N2XABJ0LD2hCwF.log ):
cabal: Entering directory '/tmp/cabal-tmp-7117/polysemy-webserver-0.2.1.0'
Configuring polysemy-webserver-0.2.1.0...
Preprocessing library for polysemy-webserver-0.2.1.0..
Building library for polysemy-webserver-0.2.1.0..
[1 of 2] Compiling Paths_polysemy_webserver ( dist/build/autogen/Paths_polysemy_webserver.hs, dist/build/Paths_polysemy_webserver.o )
[2 of 2] Compiling Polysemy.WebServer ( src/Polysemy/WebServer.hs, dist/build/Polysemy/WebServer.o )

src/Polysemy/WebServer.hs:252:68: error:
    • Could not deduce: m ~ Sem rInitial0
      from the context: Member (Final IO) r
        bound by the type signature for:
                   runWebServerFinal :: forall (r :: [(* -> *) -> * -> *]) a.
                                        Member (Final IO) r =>
                                        Sem (WebServer : r) a -> Sem r a
        at src/Polysemy/WebServer.hs:(248,1)-(249,54)
      or from: x ~ ()
        bound by a pattern with constructor:
                   StartWebServer :: forall (m :: * -> *).
                                     Warp.Port
                                     -> (Wai.Request -> PendingWebRequest -> m Wai.ResponseReceived)
                                     -> WebServer m (),
                 in a case alternative
        at src/Polysemy/WebServer.hs:252:18-40
      ‘m’ is a rigid type variable bound by
        a type expected by the context:
          forall x (m :: * -> *). WebServer m x -> Tactical WebServer m r x
        at src/Polysemy/WebServer.hs:(251,3)-(270,14)
      Expected type: Wai.Request
                     -> PendingWebRequest -> Sem rInitial0 Wai.ResponseReceived
        Actual type: Wai.Request
                     -> PendingWebRequest -> m Wai.ResponseReceived
    • In the second argument of ‘runStartWebServer’, namely ‘app’
      In the expression: runStartWebServer port app
      In a case alternative:
          StartWebServer port app -> runStartWebServer port app
    • Relevant bindings include
        app :: Wai.Request -> PendingWebRequest -> m Wai.ResponseReceived
          (bound at src/Polysemy/WebServer.hs:252:38)
        v :: WebServer m x (bound at src/Polysemy/WebServer.hs:251:16)
    |
252 |                  StartWebServer port app -> runStartWebServer port app
    |                                                                    ^^^

src/Polysemy/WebServer.hs:253:92: error:
    • Could not deduce: m ~ Sem rInitial1
      from the context: Member (Final IO) r
        bound by the type signature for:
                   runWebServerFinal :: forall (r :: [(* -> *) -> * -> *]) a.
                                        Member (Final IO) r =>
                                        Sem (WebServer : r) a -> Sem r a
        at src/Polysemy/WebServer.hs:(248,1)-(249,54)
      or from: x ~ ()
        bound by a pattern with constructor:
                   StartWebServerSettings :: forall (m :: * -> *).
                                             Warp.Settings
                                             -> (Wai.Request
                                                 -> PendingWebRequest -> m Wai.ResponseReceived)
                                             -> WebServer m (),
                 in a case alternative
        at src/Polysemy/WebServer.hs:253:18-52
      ‘m’ is a rigid type variable bound by
        a type expected by the context:
          forall x (m :: * -> *). WebServer m x -> Tactical WebServer m r x
        at src/Polysemy/WebServer.hs:(251,3)-(270,14)
      Expected type: Wai.Request
                     -> PendingWebRequest -> Sem rInitial1 Wai.ResponseReceived
        Actual type: Wai.Request
                     -> PendingWebRequest -> m Wai.ResponseReceived
    • In the second argument of ‘runStartWebServerSettings’, namely
        ‘app’
      In the expression: runStartWebServerSettings settings app
      In a case alternative:
          StartWebServerSettings settings app
            -> runStartWebServerSettings settings app
    • Relevant bindings include
        app :: Wai.Request -> PendingWebRequest -> m Wai.ResponseReceived
          (bound at src/Polysemy/WebServer.hs:253:50)
        v :: WebServer m x (bound at src/Polysemy/WebServer.hs:251:16)
    |
253 |                  StartWebServerSettings settings app -> runStartWebServerSettings settings app
    |                                                                                            ^^^

src/Polysemy/WebServer.hs:254:54: error:
    • Could not deduce: m ~ Sem rInitial2
      from the context: Member (Final IO) r
        bound by the type signature for:
                   runWebServerFinal :: forall (r :: [(* -> *) -> * -> *]) a.
                                        Member (Final IO) r =>
                                        Sem (WebServer : r) a -> Sem r a
        at src/Polysemy/WebServer.hs:(248,1)-(249,54)
      or from: x ~ Wai.ResponseReceived
        bound by a pattern with constructor:
                   RespondWebRequest :: forall (m :: * -> *).
                                        PendingWebRequest
                                        -> Wai.Response -> WebServer m Wai.ResponseReceived,
                 in a case alternative
        at src/Polysemy/WebServer.hs:254:18-49
      ‘m’ is a rigid type variable bound by
        a type expected by the context:
          forall x (m :: * -> *). WebServer m x -> Tactical WebServer m r x
        at src/Polysemy/WebServer.hs:(251,3)-(270,14)
      Expected type: Sem (WithTactics WebServer f m r) (f x)
        Actual type: Sem
                       (WithTactics WebServer f (Sem rInitial2) r)
                       (f Wai.ResponseReceived)
    • In the expression: runRespondWebRequest reqId response
      In a case alternative:
          RespondWebRequest reqId response
            -> runRespondWebRequest reqId response
      In the expression:
        case v of
          StartWebServer port app -> runStartWebServer port app
          StartWebServerSettings settings app
            -> runStartWebServerSettings settings app
          RespondWebRequest reqId response
            -> runRespondWebRequest reqId response
          GetBody maxLen req -> runGetBody maxLen req
          UpgradeToWebSocketsResponse opts app req
            -> runUpgradeToWebSocketsResponse opts app req
          AcceptPendingWebSocketConnection conn opts
            -> runAcceptPendingWebSocketConnection conn opts
          RejectPendingWebSocketConnection conn opts
            -> ioToWebServerTactics (WS.rejectRequestWith conn opts)
          WhilePingingWebSocket conn n app
            -> runWhilePingingWebSocket conn n app
          SendWebSocketDataMessages conn msgs
            -> ioToWebServerTactics $ WS.sendDataMessages conn msgs
          ReceiveWebSocketDataMessage conn
            -> runReceiveWebSocketDataMessage conn
          SendWebSocketCloseCode conn code msg
            -> ioToWebServerTactics $ WS.sendCloseCode conn code msg
    • Relevant bindings include
        v :: WebServer m x (bound at src/Polysemy/WebServer.hs:251:16)
    |
254 |                  RespondWebRequest reqId response -> runRespondWebRequest reqId response
    |                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Polysemy/WebServer.hs:255:40: error:
    • Could not deduce: m ~ Sem rInitial3
      from the context: Member (Final IO) r
        bound by the type signature for:
                   runWebServerFinal :: forall (r :: [(* -> *) -> * -> *]) a.
                                        Member (Final IO) r =>
                                        Sem (WebServer : r) a -> Sem r a
        at src/Polysemy/WebServer.hs:(248,1)-(249,54)
      or from: x ~ Maybe BS.ByteString
        bound by a pattern with constructor:
                   GetBody :: forall (m :: * -> *).
                              Int -> Wai.Request -> WebServer m (Maybe BS.ByteString),
                 in a case alternative
        at src/Polysemy/WebServer.hs:255:18-35
      ‘m’ is a rigid type variable bound by
        a type expected by the context:
          forall x (m :: * -> *). WebServer m x -> Tactical WebServer m r x
        at src/Polysemy/WebServer.hs:(251,3)-(270,14)
      Expected type: Sem (WithTactics WebServer f m r) (f x)
        Actual type: Sem
                       (WithTactics WebServer f (Sem rInitial3) r)
                       (f (Maybe BS.ByteString))
    • In the expression: runGetBody maxLen req
      In a case alternative: GetBody maxLen req -> runGetBody maxLen req
      In the expression:
        case v of
          StartWebServer port app -> runStartWebServer port app
          StartWebServerSettings settings app
            -> runStartWebServerSettings settings app
          RespondWebRequest reqId response
            -> runRespondWebRequest reqId response
          GetBody maxLen req -> runGetBody maxLen req
          UpgradeToWebSocketsResponse opts app req
            -> runUpgradeToWebSocketsResponse opts app req
          AcceptPendingWebSocketConnection conn opts
            -> runAcceptPendingWebSocketConnection conn opts
          RejectPendingWebSocketConnection conn opts
            -> ioToWebServerTactics (WS.rejectRequestWith conn opts)
          WhilePingingWebSocket conn n app
            -> runWhilePingingWebSocket conn n app
          SendWebSocketDataMessages conn msgs
            -> ioToWebServerTactics $ WS.sendDataMessages conn msgs
          ReceiveWebSocketDataMessage conn
            -> runReceiveWebSocketDataMessage conn
          SendWebSocketCloseCode conn code msg
            -> ioToWebServerTactics $ WS.sendCloseCode conn code msg
    • Relevant bindings include
        v :: WebServer m x (bound at src/Polysemy/WebServer.hs:251:16)
    |
255 |                  GetBody maxLen req -> runGetBody maxLen req
    |                                        ^^^^^^^^^^^^^^^^^^^^^

src/Polysemy/WebServer.hs:257:56: error:
    • Could not deduce: m ~ Sem rInitial4
      from the context: Member (Final IO) r
        bound by the type signature for:
                   runWebServerFinal :: forall (r :: [(* -> *) -> * -> *]) a.
                                        Member (Final IO) r =>
                                        Sem (WebServer : r) a -> Sem r a
        at src/Polysemy/WebServer.hs:(248,1)-(249,54)
      or from: x ~ Maybe Wai.Response
        bound by a pattern with constructor:
                   UpgradeToWebSocketsResponse :: forall (m :: * -> *).
                                                  WS.ConnectionOptions
                                                  -> (WS.PendingConnection -> m ())
                                                  -> Wai.Request
                                                  -> WebServer m (Maybe Wai.Response),
                 in a case alternative
        at src/Polysemy/WebServer.hs:256:18-57
      ‘m’ is a rigid type variable bound by
        a type expected by the context:
          forall x (m :: * -> *). WebServer m x -> Tactical WebServer m r x
        at src/Polysemy/WebServer.hs:(251,3)-(270,14)
      Expected type: WS.PendingConnection -> Sem rInitial4 ()
        Actual type: WS.PendingConnection -> m ()
    • In the second argument of ‘runUpgradeToWebSocketsResponse’, namely
        ‘app’
      In the expression: runUpgradeToWebSocketsResponse opts app req
      In a case alternative:
          UpgradeToWebSocketsResponse opts app req
            -> runUpgradeToWebSocketsResponse opts app req
    • Relevant bindings include
        app :: WS.PendingConnection -> m ()
          (bound at src/Polysemy/WebServer.hs:256:51)
        v :: WebServer m x (bound at src/Polysemy/WebServer.hs:251:16)
    |
257 |                    runUpgradeToWebSocketsResponse opts app req
    |                                                        ^^^

src/Polysemy/WebServer.hs:259:20: error:
    • Could not deduce: m ~ Sem rInitial5
      from the context: Member (Final IO) r
        bound by the type signature for:
                   runWebServerFinal :: forall (r :: [(* -> *) -> * -> *]) a.
                                        Member (Final IO) r =>
                                        Sem (WebServer : r) a -> Sem r a
        at src/Polysemy/WebServer.hs:(248,1)-(249,54)
      or from: x
               ~ Either
                   (Either WS.HandshakeException WS.ConnectionException) WS.Connection
        bound by a pattern with constructor:
                   AcceptPendingWebSocketConnection :: forall (m :: * -> *).
                                                       WS.PendingConnection
                                                       -> WS.AcceptRequest
                                                       -> WebServer
                                                            m
                                                            (Either
                                                               (Either
                                                                  WS.HandshakeException
                                                                  WS.ConnectionException)
                                                               WS.Connection),
                 in a case alternative
        at src/Polysemy/WebServer.hs:258:18-59
      ‘m’ is a rigid type variable bound by
        a type expected by the context:
          forall x (m :: * -> *). WebServer m x -> Tactical WebServer m r x
        at src/Polysemy/WebServer.hs:(251,3)-(270,14)
      Expected type: Sem (WithTactics WebServer f m r) (f x)
        Actual type: Sem
                       (WithTactics WebServer f (Sem rInitial5) r)
                       (f (Either
                             (Either WS.HandshakeException WS.ConnectionException)
                             WS.Connection))
    • In the expression: runAcceptPendingWebSocketConnection conn opts
      In a case alternative:
          AcceptPendingWebSocketConnection conn opts
            -> runAcceptPendingWebSocketConnection conn opts
      In the expression:
        case v of
          StartWebServer port app -> runStartWebServer port app
          StartWebServerSettings settings app
            -> runStartWebServerSettings settings app
          RespondWebRequest reqId response
            -> runRespondWebRequest reqId response
          GetBody maxLen req -> runGetBody maxLen req
          UpgradeToWebSocketsResponse opts app req
            -> runUpgradeToWebSocketsResponse opts app req
          AcceptPendingWebSocketConnection conn opts
            -> runAcceptPendingWebSocketConnection conn opts
          RejectPendingWebSocketConnection conn opts
            -> ioToWebServerTactics (WS.rejectRequestWith conn opts)
          WhilePingingWebSocket conn n app
            -> runWhilePingingWebSocket conn n app
          SendWebSocketDataMessages conn msgs
            -> ioToWebServerTactics $ WS.sendDataMessages conn msgs
          ReceiveWebSocketDataMessage conn
            -> runReceiveWebSocketDataMessage conn
          SendWebSocketCloseCode conn code msg
            -> ioToWebServerTactics $ WS.sendCloseCode conn code msg
    • Relevant bindings include
        v :: WebServer m x (bound at src/Polysemy/WebServer.hs:251:16)
    |
259 |                    runAcceptPendingWebSocketConnection conn opts
    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Polysemy/WebServer.hs:261:20: error:
    • Could not deduce: m ~ Sem rInitial6
      from the context: Member (Final IO) r
        bound by the type signature for:
                   runWebServerFinal :: forall (r :: [(* -> *) -> * -> *]) a.
                                        Member (Final IO) r =>
                                        Sem (WebServer : r) a -> Sem r a
        at src/Polysemy/WebServer.hs:(248,1)-(249,54)
      or from: x ~ ()
        bound by a pattern with constructor:
                   RejectPendingWebSocketConnection :: forall (m :: * -> *).
                                                       WS.PendingConnection
                                                       -> WS.RejectRequest -> WebServer m (),
                 in a case alternative
        at src/Polysemy/WebServer.hs:260:18-59
      ‘m’ is a rigid type variable bound by
        a type expected by the context:
          forall x (m :: * -> *). WebServer m x -> Tactical WebServer m r x
        at src/Polysemy/WebServer.hs:(251,3)-(270,14)
      Expected type: Sem (WithTactics WebServer f m r) (f x)
        Actual type: Sem
                       (WithTactics WebServer f (Sem rInitial6) r) (f ())
    • In the expression:
        ioToWebServerTactics (WS.rejectRequestWith conn opts)
      In a case alternative:
          RejectPendingWebSocketConnection conn opts
            -> ioToWebServerTactics (WS.rejectRequestWith conn opts)
      In the expression:
        case v of
          StartWebServer port app -> runStartWebServer port app
          StartWebServerSettings settings app
            -> runStartWebServerSettings settings app
          RespondWebRequest reqId response
            -> runRespondWebRequest reqId response
          GetBody maxLen req -> runGetBody maxLen req
          UpgradeToWebSocketsResponse opts app req
            -> runUpgradeToWebSocketsResponse opts app req
          AcceptPendingWebSocketConnection conn opts
            -> runAcceptPendingWebSocketConnection conn opts
          RejectPendingWebSocketConnection conn opts
            -> ioToWebServerTactics (WS.rejectRequestWith conn opts)
          WhilePingingWebSocket conn n app
            -> runWhilePingingWebSocket conn n app
          SendWebSocketDataMessages conn msgs
            -> ioToWebServerTactics $ WS.sendDataMessages conn msgs
          ReceiveWebSocketDataMessage conn
            -> runReceiveWebSocketDataMessage conn
          SendWebSocketCloseCode conn code msg
            -> ioToWebServerTactics $ WS.sendCloseCode conn code msg
    • Relevant bindings include
        v :: WebServer m x (bound at src/Polysemy/WebServer.hs:251:16)
    |
261 |                    ioToWebServerTactics (WS.rejectRequestWith conn opts)
    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Polysemy/WebServer.hs:263:52: error:
    • Could not deduce: m ~ Sem rInitial7
      from the context: Member (Final IO) r
        bound by the type signature for:
                   runWebServerFinal :: forall (r :: [(* -> *) -> * -> *]) a.
                                        Member (Final IO) r =>
                                        Sem (WebServer : r) a -> Sem r a
        at src/Polysemy/WebServer.hs:(248,1)-(249,54)
      or from: x ~ Maybe a1
        bound by a pattern with constructor:
                   WhilePingingWebSocket :: forall (m :: * -> *) a.
                                            WS.Connection -> Int -> m a -> WebServer m (Maybe a),
                 in a case alternative
        at src/Polysemy/WebServer.hs:262:18-49
      ‘m’ is a rigid type variable bound by
        a type expected by the context:
          forall x (m :: * -> *). WebServer m x -> Tactical WebServer m r x
        at src/Polysemy/WebServer.hs:(251,3)-(270,14)
      Expected type: Sem rInitial7 a1
        Actual type: m a1
    • In the third argument of ‘runWhilePingingWebSocket’, namely ‘app’
      In the expression: runWhilePingingWebSocket conn n app
      In a case alternative:
          WhilePingingWebSocket conn n app
            -> runWhilePingingWebSocket conn n app
    • Relevant bindings include
        app :: m a1 (bound at src/Polysemy/WebServer.hs:262:47)
        v :: WebServer m x (bound at src/Polysemy/WebServer.hs:251:16)
    |
263 |                    runWhilePingingWebSocket conn n app
    |                                                    ^^^

src/Polysemy/WebServer.hs:265:20: error:
    • Could not deduce: m ~ Sem rInitial8
      from the context: Member (Final IO) r
        bound by the type signature for:
                   runWebServerFinal :: forall (r :: [(* -> *) -> * -> *]) a.
                                        Member (Final IO) r =>
                                        Sem (WebServer : r) a -> Sem r a
        at src/Polysemy/WebServer.hs:(248,1)-(249,54)
      or from: x ~ ()
        bound by a pattern with constructor:
                   SendWebSocketDataMessages :: forall (m :: * -> *).
                                                WS.Connection -> [WS.DataMessage] -> WebServer m (),
                 in a case alternative
        at src/Polysemy/WebServer.hs:264:18-52
      ‘m’ is a rigid type variable bound by
        a type expected by the context:
          forall x (m :: * -> *). WebServer m x -> Tactical WebServer m r x
        at src/Polysemy/WebServer.hs:(251,3)-(270,14)
      Expected type: Sem (WithTactics WebServer f m r) (f x)
        Actual type: Sem
                       (WithTactics WebServer f (Sem rInitial8) r) (f ())
    • In the expression:
        ioToWebServerTactics $ WS.sendDataMessages conn msgs
      In a case alternative:
          SendWebSocketDataMessages conn msgs
            -> ioToWebServerTactics $ WS.sendDataMessages conn msgs
      In the expression:
        case v of
          StartWebServer port app -> runStartWebServer port app
          StartWebServerSettings settings app
            -> runStartWebServerSettings settings app
          RespondWebRequest reqId response
            -> runRespondWebRequest reqId response
          GetBody maxLen req -> runGetBody maxLen req
          UpgradeToWebSocketsResponse opts app req
            -> runUpgradeToWebSocketsResponse opts app req
          AcceptPendingWebSocketConnection conn opts
            -> runAcceptPendingWebSocketConnection conn opts
          RejectPendingWebSocketConnection conn opts
            -> ioToWebServerTactics (WS.rejectRequestWith conn opts)
          WhilePingingWebSocket conn n app
            -> runWhilePingingWebSocket conn n app
          SendWebSocketDataMessages conn msgs
            -> ioToWebServerTactics $ WS.sendDataMessages conn msgs
          ReceiveWebSocketDataMessage conn
            -> runReceiveWebSocketDataMessage conn
          SendWebSocketCloseCode conn code msg
            -> ioToWebServerTactics $ WS.sendCloseCode conn code msg
    • Relevant bindings include
        v :: WebServer m x (bound at src/Polysemy/WebServer.hs:251:16)
    |
265 |                    ioToWebServerTactics $ WS.sendDataMessages conn msgs
    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Polysemy/WebServer.hs:267:20: error:
    • Could not deduce: m ~ Sem rInitial9
      from the context: Member (Final IO) r
        bound by the type signature for:
                   runWebServerFinal :: forall (r :: [(* -> *) -> * -> *]) a.
                                        Member (Final IO) r =>
                                        Sem (WebServer : r) a -> Sem r a
        at src/Polysemy/WebServer.hs:(248,1)-(249,54)
      or from: x ~ Either WS.ConnectionException WS.DataMessage
        bound by a pattern with constructor:
                   ReceiveWebSocketDataMessage :: forall (m :: * -> *).
                                                  WS.Connection
                                                  -> WebServer
                                                       m
                                                       (Either
                                                          WS.ConnectionException WS.DataMessage),
                 in a case alternative
        at src/Polysemy/WebServer.hs:266:18-49
      ‘m’ is a rigid type variable bound by
        a type expected by the context:
          forall x (m :: * -> *). WebServer m x -> Tactical WebServer m r x
        at src/Polysemy/WebServer.hs:(251,3)-(270,14)
      Expected type: Sem (WithTactics WebServer f m r) (f x)
        Actual type: Sem
                       (WithTactics WebServer f (Sem rInitial9) r)
                       (f (Either WS.ConnectionException WS.DataMessage))
    • In the expression: runReceiveWebSocketDataMessage conn
      In a case alternative:
          ReceiveWebSocketDataMessage conn
            -> runReceiveWebSocketDataMessage conn
      In the expression:
        case v of
          StartWebServer port app -> runStartWebServer port app
          StartWebServerSettings settings app
            -> runStartWebServerSettings settings app
          RespondWebRequest reqId response
            -> runRespondWebRequest reqId response
          GetBody maxLen req -> runGetBody maxLen req
          UpgradeToWebSocketsResponse opts app req
            -> runUpgradeToWebSocketsResponse opts app req
          AcceptPendingWebSocketConnection conn opts
            -> runAcceptPendingWebSocketConnection conn opts
          RejectPendingWebSocketConnection conn opts
            -> ioToWebServerTactics (WS.rejectRequestWith conn opts)
          WhilePingingWebSocket conn n app
            -> runWhilePingingWebSocket conn n app
          SendWebSocketDataMessages conn msgs
            -> ioToWebServerTactics $ WS.sendDataMessages conn msgs
          ReceiveWebSocketDataMessage conn
            -> runReceiveWebSocketDataMessage conn
          SendWebSocketCloseCode conn code msg
            -> ioToWebServerTactics $ WS.sendCloseCode conn code msg
    • Relevant bindings include
        v :: WebServer m x (bound at src/Polysemy/WebServer.hs:251:16)
    |
267 |                    runReceiveWebSocketDataMessage conn
    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Polysemy/WebServer.hs:269:20: error:
    • Could not deduce: m ~ Sem rInitial10
      from the context: Member (Final IO) r
        bound by the type signature for:
                   runWebServerFinal :: forall (r :: [(* -> *) -> * -> *]) a.
                                        Member (Final IO) r =>
                                        Sem (WebServer : r) a -> Sem r a
        at src/Polysemy/WebServer.hs:(248,1)-(249,54)
      or from: (x ~ (), WS.WebSocketsData a1)
        bound by a pattern with constructor:
                   SendWebSocketCloseCode :: forall a (m :: * -> *).
                                             WS.WebSocketsData a =>
                                             WS.Connection -> Word16 -> a -> WebServer m (),
                 in a case alternative
        at src/Polysemy/WebServer.hs:268:18-53
      ‘m’ is a rigid type variable bound by
        a type expected by the context:
          forall x (m :: * -> *). WebServer m x -> Tactical WebServer m r x
        at src/Polysemy/WebServer.hs:(251,3)-(270,14)
      Expected type: Sem (WithTactics WebServer f m r) (f x)
        Actual type: Sem
                       (WithTactics WebServer f (Sem rInitial10) r) (f ())
    • In the expression:
        ioToWebServerTactics $ WS.sendCloseCode conn code msg
      In a case alternative:
          SendWebSocketCloseCode conn code msg
            -> ioToWebServerTactics $ WS.sendCloseCode conn code msg
      In the expression:
        case v of
          StartWebServer port app -> runStartWebServer port app
          StartWebServerSettings settings app
            -> runStartWebServerSettings settings app
          RespondWebRequest reqId response
            -> runRespondWebRequest reqId response
          GetBody maxLen req -> runGetBody maxLen req
          UpgradeToWebSocketsResponse opts app req
            -> runUpgradeToWebSocketsResponse opts app req
          AcceptPendingWebSocketConnection conn opts
            -> runAcceptPendingWebSocketConnection conn opts
          RejectPendingWebSocketConnection conn opts
            -> ioToWebServerTactics (WS.rejectRequestWith conn opts)
          WhilePingingWebSocket conn n app
            -> runWhilePingingWebSocket conn n app
          SendWebSocketDataMessages conn msgs
            -> ioToWebServerTactics $ WS.sendDataMessages conn msgs
          ReceiveWebSocketDataMessage conn
            -> runReceiveWebSocketDataMessage conn
          SendWebSocketCloseCode conn code msg
            -> ioToWebServerTactics $ WS.sendCloseCode conn code msg
    • Relevant bindings include
        v :: WebServer m x (bound at src/Polysemy/WebServer.hs:251:16)
    |
269 |                    ioToWebServerTactics $ WS.sendCloseCode conn code msg
    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cabal: Leaving directory '/tmp/cabal-tmp-7117/polysemy-webserver-0.2.1.0'
cabal: Error: some packages failed to install:
polysemy-webserver-0.2.1.0-A1REaII7N2XABJ0LD2hCwF failed during the building
phase. The exception was:
ExitFailure 1

Test log

No test log was submitted for this report.