Skip to content

GHC 9.6.3 support #70

Open
Open
@maerten

Description

@maerten

Hello,
I've just tried compiling servant-multipart with GHC 9.6.3 and am hitting this issue:

servant-multipart-client> build
servant-multipart-client> Preprocessing executable 'server' for servant-multipart-client-0.12.1..
servant-multipart-client> Building executable 'server' for servant-multipart-client-0.12.1..
servant-multipart-client> [1 of 1] Compiling Main
servant-multipart-client> [2 of 2] Linking .stack-work/dist/aarch64-osx/Cabal-3.10.1.0/build/server/server
servant-multipart-client> ld: warning: ignoring duplicate libraries: '-lm'
servant-multipart-client> Preprocessing library for servant-multipart-client-0.12.1..
servant-multipart-client> Building library for servant-multipart-client-0.12.1..
servant-multipart-client> [1 of 1] Compiling Servant.Multipart.Client
servant-multipart-client>
servant-multipart-client> /private/var/folders/0c/zmpjp7l568xcvnt49pkkn5p00000gn/T/stack-29e507a3bc44f1b9/servant-multipart-client-0.12.1/src/Servant/Multipart/Client.hs:77:18: error: [GHC-39999]
servant-multipart-client>     • Ambiguous type variable ‘f1’ arising from a use of ‘source’
servant-multipart-client>       prevents the constraint ‘(Foldable f1)’ from being solved.
servant-multipart-client>       Probable fix: use a type annotation to specify what ‘f1’ should be.
servant-multipart-client>       Potentially matching instances:
servant-multipart-client>         instance Foldable (Either a) -- Defined in ‘Data.Foldable’
servant-multipart-client>         instance Foldable Proxy -- Defined in ‘Data.Foldable’
servant-multipart-client>         ...plus 7 others
servant-multipart-client>         ...plus 93 instances involving out-of-scope types
servant-multipart-client>         (use -fprint-potential-instances to see them all)
servant-multipart-client>     • In the first argument of ‘(.)’, namely ‘source’
servant-multipart-client>       In the expression: source . pure
servant-multipart-client>       In an equation for ‘loadFile’: loadFile _ = source . pure
servant-multipart-client>    |
servant-multipart-client> 77 |     loadFile _ = source . pure
servant-multipart-client>    |                  ^^^^^^
servant-multipart-client>
servant-multipart-client> /private/var/folders/0c/zmpjp7l568xcvnt49pkkn5p00000gn/T/stack-29e507a3bc44f1b9/servant-multipart-client-0.12.1/src/Servant/Multipart/Client.hs:77:27: error: [GHC-39999]
servant-multipart-client>     • Ambiguous type variable ‘f1’ arising from a use of ‘pure’
servant-multipart-client>       prevents the constraint ‘(Applicative f1)’ from being solved.
servant-multipart-client>       Probable fix: use a type annotation to specify what ‘f1’ should be.
servant-multipart-client>       Potentially matching instances:
servant-multipart-client>         instance Applicative (Either e) -- Defined in ‘Data.Either’
servant-multipart-client>         instance Applicative Proxy -- Defined in ‘Data.Proxy’
servant-multipart-client>         ...plus 8 others
servant-multipart-client>         ...plus 75 instances involving out-of-scope types
servant-multipart-client>         (use -fprint-potential-instances to see them all)
servant-multipart-client>     • In the second argument of ‘(.)’, namely ‘pure’
servant-multipart-client>       In the expression: source . pure
servant-multipart-client>       In an equation for ‘loadFile’: loadFile _ = source . pure
servant-multipart-client>    |
servant-multipart-client> 77 |     loadFile _ = source . pure
servant-multipart-client>    |                           ^^^^
servant-multipart-client>
servant-multipart-client> /private/var/folders/0c/zmpjp7l568xcvnt49pkkn5p00000gn/T/stack-29e507a3bc44f1b9/servant-multipart-client-0.12.1/src/Servant/Multipart/Client.hs:135:37: error: [GHC-39999]
servant-multipart-client>     • Could not deduce ‘Foldable f0’ arising from a use of ‘source’
servant-multipart-client>       from the context: MultipartClient tag
servant-multipart-client>         bound by the type signature for:
servant-multipart-client>                    multipartToBody :: forall tag.
servant-multipart-client>                                       MultipartClient tag =>
servant-multipart-client>                                       LBS.ByteString -> MultipartData tag -> RequestBody
servant-multipart-client>         at src/Servant/Multipart/Client.hs:(111,1)-(115,30)
servant-multipart-client>       The type variable ‘f0’ is ambiguous
servant-multipart-client>       Potentially matching instances:
servant-multipart-client>         instance Foldable (Either a) -- Defined in ‘Data.Foldable’
servant-multipart-client>         instance Foldable Proxy -- Defined in ‘Data.Foldable’
servant-multipart-client>         ...plus 7 others
servant-multipart-client>         ...plus 93 instances involving out-of-scope types
servant-multipart-client>         (use -fprint-potential-instances to see them all)
servant-multipart-client>     • In the first argument of ‘(.)’, namely ‘source’
servant-multipart-client>       In the first argument of ‘($)’, namely
servant-multipart-client>         ‘source . pure . lencode . iValue’
servant-multipart-client>       In the fourth argument of ‘renderPart’, namely
servant-multipart-client>         ‘(source . pure . lencode . iValue $ input)’
servant-multipart-client>     |
servant-multipart-client> 135 |                                    (source . pure . lencode . iValue $ input)
servant-multipart-client>     |                                     ^^^^^^
servant-multipart-client>
servant-multipart-client> /private/var/folders/0c/zmpjp7l568xcvnt49pkkn5p00000gn/T/stack-29e507a3bc44f1b9/servant-multipart-client-0.12.1/src/Servant/Multipart/Client.hs:135:46: error: [GHC-39999]
servant-multipart-client>     • Could not deduce ‘Applicative f0’ arising from a use of ‘pure’
servant-multipart-client>       from the context: MultipartClient tag
servant-multipart-client>         bound by the type signature for:
servant-multipart-client>                    multipartToBody :: forall tag.
servant-multipart-client>                                       MultipartClient tag =>
servant-multipart-client>                                       LBS.ByteString -> MultipartData tag -> RequestBody
servant-multipart-client>         at src/Servant/Multipart/Client.hs:(111,1)-(115,30)
servant-multipart-client>       The type variable ‘f0’ is ambiguous
servant-multipart-client>       Potentially matching instances:
servant-multipart-client>         instance Applicative (Either e) -- Defined in ‘Data.Either’
servant-multipart-client>         instance Applicative Proxy -- Defined in ‘Data.Proxy’
servant-multipart-client>         ...plus 8 others
servant-multipart-client>         ...plus 75 instances involving out-of-scope types
servant-multipart-client>         (use -fprint-potential-instances to see them all)
servant-multipart-client>     • In the first argument of ‘(.)’, namely ‘pure’
servant-multipart-client>       In the second argument of ‘(.)’, namely ‘pure . lencode . iValue’
servant-multipart-client>       In the first argument of ‘($)’, namely
servant-multipart-client>         ‘source . pure . lencode . iValue’
servant-multipart-client>     |
servant-multipart-client> 135 |                                    (source . pure . lencode . iValue $ input)
servant-multipart-client>     |                                              ^^^^

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions