haskoin / secp256k1-haskell

Haskell bindings for secp256k1 library
Other
24 stars 36 forks source link

Build under ghc 9.8 #47

Closed alexfmpe closed 7 months ago

alexfmpe commented 8 months ago

Bumped bounds of libraries bundled with ghc 9.8.

Something must have changed in handling of DuplicateRecordFields in 9.8 as I needed to add it at the root module otherwise


$ cabal build all
Resolving dependencies...
Build profile: -w ghc-9.8.1 -O1

(...)

src/Crypto/Secp256k1.hs:19:5: error: [GHC-97219]
    Duplicate record field ‘get’ in export list:
       ‘Msg(..)’ exports the field ‘get’
       belonging to the constructor ‘Msg’
         imported from ‘Crypto.Secp256k1.Internal.Base’ at src/Crypto/Secp256k1.hs:62:1-37
       ‘Ctx(..)’ exports the field ‘get’
       belonging to the constructor ‘Ctx’
         imported from ‘Crypto.Secp256k1.Internal.Context’ at src/Crypto/Secp256k1.hs:63:1-40
    Suggested fix: Perhaps you intended to use DuplicateRecordFields
   |
19 |     Msg (..),
   |     ^^^^^^^^

src/Crypto/Secp256k1.hs:23:5: error: [GHC-97219]
    Duplicate record field ‘get’ in export list:
       ‘SecKey(..)’ exports the field ‘get’
       belonging to the constructor ‘SecKey’
         imported from ‘Crypto.Secp256k1.Internal.Base’ at src/Crypto/Secp256k1.hs:62:1-37
       ‘Ctx(..)’ exports the field ‘get’
       belonging to the constructor ‘Ctx’
         imported from ‘Crypto.Secp256k1.Internal.Context’ at src/Crypto/Secp256k1.hs:63:1-40
    Suggested fix: Perhaps you intended to use DuplicateRecordFields
   |
23 |     SecKey (..),
   |     ^^^^^^^^^^^

src/Crypto/Secp256k1.hs:28:5: error: [GHC-97219]
    Duplicate record field ‘get’ in export list:
       ‘PubKey(..)’ exports the field ‘get’
       belonging to the constructor ‘PubKey’
         imported from ‘Crypto.Secp256k1.Internal.Base’ at src/Crypto/Secp256k1.hs:62:1-37
       ‘Ctx(..)’ exports the field ‘get’
       belonging to the constructor ‘Ctx’
         imported from ‘Crypto.Secp256k1.Internal.Context’ at src/Crypto/Secp256k1.hs:63:1-40
    Suggested fix: Perhaps you intended to use DuplicateRecordFields
   |
28 |     PubKey (..),
   |     ^^^^^^^^^^^

src/Crypto/Secp256k1.hs:34:5: error: [GHC-97219]
    Duplicate record field ‘get’ in export list:
       ‘Sig(..)’ exports the field ‘get’
       belonging to the constructor ‘Sig’
         imported from ‘Crypto.Secp256k1.Internal.Base’ at src/Crypto/Secp256k1.hs:62:1-37
       ‘Ctx(..)’ exports the field ‘get’
       belonging to the constructor ‘Ctx’
         imported from ‘Crypto.Secp256k1.Internal.Context’ at src/Crypto/Secp256k1.hs:63:1-40
    Suggested fix: Perhaps you intended to use DuplicateRecordFields
   |
34 |     Sig (..),
   |     ^^^^^^^^

src/Crypto/Secp256k1.hs:45:5: error: [GHC-97219]
    Duplicate record field ‘get’ in export list:
       ‘CompactSig(..)’ exports the field ‘get’
       belonging to the constructor ‘CompactSig’
         imported from ‘Crypto.Secp256k1.Internal.Base’ at src/Crypto/Secp256k1.hs:62:1-37
       ‘Ctx(..)’ exports the field ‘get’
       belonging to the constructor ‘Ctx’
         imported from ‘Crypto.Secp256k1.Internal.Context’ at src/Crypto/Secp256k1.hs:63:1-40
    Suggested fix: Perhaps you intended to use DuplicateRecordFields
   |
45 |     CompactSig (..),
   |     ^^^^^^^^^^^^^^^

src/Crypto/Secp256k1.hs:51:5: error: [GHC-97219]
    Duplicate record field ‘get’ in export list:
       ‘Tweak(..)’ exports the field ‘get’
       belonging to the constructor ‘Tweak’
         imported from ‘Crypto.Secp256k1.Internal.Base’ at src/Crypto/Secp256k1.hs:62:1-37
       ‘Ctx(..)’ exports the field ‘get’
       belonging to the constructor ‘Ctx’
         imported from ‘Crypto.Secp256k1.Internal.Context’ at src/Crypto/Secp256k1.hs:63:1-40
    Suggested fix: Perhaps you intended to use DuplicateRecordFields
   |
51 |     Tweak (..),
   |     ^^^^^^^^^^
Error: cabal: Failed to build secp256k1-haskell-1.1.0.