Skip to content

yesod-static 1.6.1.2 build failure: Could not deduce ‘ByteArray.ByteArrayAccess (Digest MD5)’ #1917

Open

Description

@simonmichael
Building library for yesod-static-1.6.1.2...
[1 of 7] Compiling Yesod.EmbeddedStatic.Types ( Yesod/EmbeddedStatic/Types.hs, dist/build/Yesod/EmbeddedStatic/Types.o, dist/build/Yesod/EmbeddedStatic/Types.dyn_o )
[2 of 7] Compiling Yesod.EmbeddedStatic.Generators ( Yesod/EmbeddedStatic/Generators.hs, dist/build/Yesod/EmbeddedStatic/Generators.o, dist/build/Yesod/EmbeddedStatic/Generators.dyn_o )
[3 of 7] Compiling Yesod.Static     ( Yesod/Static.hs, dist/build/Yesod/Static.o, dist/build/Yesod/Static.dyn_o )
Yesod/Static.hs:414:22: error: [GHC-39999]
    • Could not deduce ‘ByteArray.ByteArrayAccess (Digest MD5)’
        arising from a use of ‘ByteArray.convert’
      from the context: ByteArray.ByteArray bout
        bound by the inferred type of
                   encode :: ByteArray.ByteArray bout => Digest MD5 -> bout
        at Yesod/Static.hs:414:11-56
    • In the expression: ByteArray.convert (d :: Digest MD5)
      In an equation for ‘encode’:
          encode d = ByteArray.convert (d :: Digest MD5)
      In an equation for ‘base64md5File’:
          base64md5File
            = fmap (base64 . encode) . hashFile
            where
                encode d = ByteArray.convert (d :: Digest MD5)
    |
414 |     where encode d = ByteArray.convert (d :: Digest MD5)
    |                      ^^^^^^^^^^^^^^^^^

Yesod/Static.hs:422:16: error: [GHC-39999]
    • Could not deduce ‘ByteArray.ByteArrayAccess (Digest MD5)’
        arising from a use of ‘ByteArray.convert’
      from the context: ByteArray.ByteArray bout
        bound by the inferred type of
                   encode :: ByteArray.ByteArray bout => Digest MD5 -> bout
        at Yesod/Static.hs:422:5-50
    • In the expression: ByteArray.convert (d :: Digest MD5)
      In an equation for ‘encode’:
          encode d = ByteArray.convert (d :: Digest MD5)
      In an equation for ‘base64md5’:
          base64md5 lbs
            = base64
                $ encode $ runConduitPure $ Conduit.sourceLazy lbs .| sinkHash
            where
                encode d = ByteArray.convert (d :: Digest MD5)
    |
422 |     encode d = ByteArray.convert (d :: Digest MD5)
Error: [Cabal-7125]

Dependencies:

- Decimal-0.5.2 (lib) (requires download & build)
 - Diff-1.0.2 (lib) (requires download & build)
 - OneTuple-0.4.2.1 (lib) (requires download & build)
 - Only-0.1 (lib) (requires download & build)
 - SHA-1.6.4.4 (lib) (requires download & build)
 - StateVar-1.2.2 (lib) (requires download & build)
 - appar-0.1.8 (lib:appar) (requires download & build)
 - assoc-1.1.1 (lib) (requires download & build)
 - attoparsec-0.14.4 (lib:attoparsec-internal) (requires download & build)
 - base-compat-0.15.0 (lib) (requires download & build)
 - base-orphans-0.9.4 (lib) (requires download & build)
 - base16-bytestring-1.0.2.0 (lib) (requires download & build)
 - base64-bytestring-1.2.1.0 (lib) (requires download & build)
 - basement-0.0.16 (lib) (requires download & build)
 - blaze-builder-0.4.4.1 (lib) (requires download & build)
 - byteorder-1.0.4 (lib:byteorder) (requires download & build)
 - call-stack-0.4.0 (lib) (requires download & build)
 - cereal-0.5.8.3 (lib) (requires download & build)
 - character-ps-0.1 (lib) (requires download & build)
 - clock-0.8.4 (lib) (requires download & build)
 - cmdargs-0.10.22 (lib) (requires download & build)
 - colour-2.3.7 (lib) (requires download & build)
 - control-monad-free-0.6.2 (lib) (requires download & build)
 - cryptohash-md5-0.11.101.0 (lib) (requires download & build)
 - csv-0.1.2 (lib:csv) (requires download & build)
 - data-default-0.8.0.2 (lib) (requires download & build)
 - dlist-1.0 (lib) (requires download & build)
 - emojis-0.1.4.1 (lib) (requires download & build)
 - entropy-0.4.1.11 (lib:entropy) (requires download & build)
 - extensible-exceptions-0.1.1.4 (lib:extensible-exceptions) (requires download & build)
 - file-embed-0.0.16.0 (lib) (requires download & build)
 - half-0.3.3 (lib) (requires download & build)
 - hashable-1.5.1.0 (lib) (requires download & build)
 - haskeline-0.8.4.1 (lib) (requires download & build)
 - hourglass-0.2.12 (lib) (requires download & build)
 - hsc2hs-0.68.10 (exe:hsc2hs) (requires download & build)
 - html-1.0.1.2 (lib:html) (requires download & build)
 - indexed-traversable-0.1.4 (lib) (requires download & build)
 - integer-logarithms-1.0.5 (lib) (requires download & build)
 - microlens-0.5.0.0 (lib) (requires download & build)
 - mime-types-0.1.2.2 (lib) (requires download & build)
 - mtl-compat-0.2.2 (lib) (requires download & build)
 - network-byte-order-0.1.8 (lib) (requires download & build)
 - old-locale-1.0.0.7 (lib) (requires download & build)
 - parser-combinators-1.3.1 (lib) (requires download & build)
 - prettyprinter-1.7.1 (lib) (requires download & build)
 - primitive-0.9.1.0 (lib) (requires download & build)
 - quote-quot-0.2.1.0 (lib) (requires download & build)
 - ram-0.22.0 (lib) (requires download & build)
 - reflection-2.1.9 (lib) (requires download & build)
 - regex-base-0.94.0.3 (lib) (requires download & build)
 - safe-0.3.21 (lib) (requires download & build)
 - split-0.2.5 (lib) (requires download & build)
 - splitmix-0.1.3.2 (lib) (requires download & build)
 - tagged-0.8.10 (lib) (requires download & build)
 - th-abstraction-0.7.2.0 (lib) (requires download & build)
 - th-compat-0.1.7 (lib) (requires download & build)
 - time-hourglass-0.3.0 (lib) (requires download & build)
 - timeit-2.0 (lib) (requires download & build)
 - transformers-compat-0.7.2 (lib) (requires download & build)
 - uglymemo-0.1.0.1 (lib:uglymemo) (requires download & build)
 - unliftio-core-0.2.1.0 (lib) (requires download & build)
 - utf8-string-1.0.2 (lib) (requires download & build)
 - utility-ht-0.0.17.2 (lib) (requires download & build)
 - vector-stream-0.1.0.1 (lib) (requires download & build)
 - contravariant-1.5.6 (lib) (requires download & build)
 - memory-0.18.0 (lib) (requires download & build)
 - blaze-markup-0.8.3.0 (lib) (requires download & build)
 - extra-1.8.1 (lib) (requires download & build)
 - ansi-terminal-types-1.1.3 (lib) (requires download & build)
 - data-default-class-0.2.0.0 (lib) (requires download & build)
 - unordered-containers-0.2.21 (lib) (requires download & build)
 - time-compat-1.9.9 (lib) (requires download & build)
 - these-1.2.1 (lib) (requires download & build)
 - text-short-0.1.6.1 (lib) (requires download & build)
 - data-fix-0.3.4 (lib) (requires download & build)
 - case-insensitive-1.2.1.0 (lib) (requires download & build)
 - wizards-1.0.3 (lib) (requires download & build)
 - zlib-0.7.1.1 (lib) (requires download & build)
 - terminal-size-0.3.4 (lib) (requires download & build)
 - network-3.2.8.0 (lib:network) (requires download & build)
 - tabular-0.2.2.8 (lib) (requires download & build)
 - ech-config-0.0.1 (lib) (requires download & build)
 - old-time-1.1.1.0 (lib:old-time) (requires download & build)
 - scientific-0.3.8.1 (lib) (requires download & build)
 - integer-conversion-0.1.1 (lib) (requires download & build)
 - cborg-0.2.10.0 (lib) (requires download & build)
 - text-builder-linear-0.1.3 (lib) (requires download & build)
 - regex-tdfa-1.3.2.5 (lib) (requires download & build)
 - regex-posix-0.96.0.2 (lib) (requires download & build)
 - doclayout-0.5.0.1 (lib) (requires download & build)
 - random-1.3.1 (lib) (requires download & build)
 - distributive-0.6.3 (lib) (requires download & build)
 - crypto-api-0.13.3 (lib:crypto-api) (requires download & build)
 - th-lift-0.8.7 (lib) (requires download & build)
 - microlens-th-0.4.3.18 (lib) (requires download & build)
 - network-uri-2.6.4.2 (lib) (requires download & build)
 - githash-0.1.7.0 (lib) (requires download & build)
 - transformers-base-0.4.6.1 (lib) (requires download & build)
 - mmorph-1.2.2 (lib) (requires download & build)
 - Glob-0.10.2 (lib) (requires download & build)
 - vector-0.13.2.0 (lib) (requires download & build)
 - asn1-types-0.3.4 (lib:asn1-types) (requires download & build)
 - blaze-html-0.9.2.0 (lib) (requires download & build)
 - ansi-terminal-1.1.5 (lib) (requires download & build)
 - cookie-0.5.1 (lib) (requires download & build)
 - async-2.2.6 (lib) (requires download & build)
 - strict-0.5.1 (lib) (requires download & build)
 - base64-1.0 (lib) (requires download & build)
 - base16-1.0 (lib) (requires download & build)
 - http-types-0.12.4 (lib) (requires download & build)
 - iproute-1.7.15 (lib) (requires download & build)
 - crypton-socks-0.6.2 (lib) (requires download & build)
 - unix-time-0.4.17 (lib:unix-time) (requires download & build)
 - megaparsec-9.7.0 (lib) (requires download & build)
 - attoparsec-0.14.4 (lib) (requires download & build)
 - text-iso8601-0.1.1.1 (lib) (requires download & build)
 - text-ansi-0.3.0.1 (lib) (requires download & build)
 - regex-compat-0.95.2.2 (lib) (requires download & build)
 - uuid-types-1.0.6.1 (lib) (requires download & build)
 - temporary-1.3 (lib) (requires download & build)
 - retry-0.9.3.1 (lib) (requires download & build)
 - QuickCheck-2.18.0.0 (lib) (requires download & build)
 - comonad-5.0.10 (lib) (requires download & build)
 - monad-control-1.0.3.1 (lib) (requires download & build)
 - lucid-2.11.20250303 (lib) (requires download & build)
 - math-functions-0.3.4.4 (lib) (requires download & build)
 - indexed-traversable-instances-0.1.2.1 (lib) (requires download & build)
 - hashtables-1.4.2 (lib) (requires download & build)
 - asn1-encoding-0.9.6 (lib) (requires download & build)
 - prettyprinter-ansi-terminal-1.1.3 (lib) (requires download & build)
 - streaming-commons-0.2.3.1 (lib) (requires download & build)
 - serialise-0.2.6.1 (lib) (requires download & build)
 - crypton-pem-0.3.0 (lib) (requires download & build)
 - crypton-asn1-types-0.4.1 (lib) (requires download & build)
 - crypton-1.1.2 (lib) (requires download & build)
 - cassava-0.5.4.1 (lib) (requires download & build)
 - encoding-0.10.2 (lib) (requires download & build)
 - http-api-data-0.7 (lib) (requires download & build)
 - bifunctors-5.6.3 (lib) (requires download & build)
 - witherable-0.5 (lib) (requires download & build)
 - crypto-pubkey-types-0.4.3 (lib:crypto-pubkey-types) (requires download & build)
 - pretty-simple-4.1.4.0 (lib) (requires download & build)
 - optparse-applicative-0.19.0.0 (lib) (requires download & build)
 - http-client-0.7.19 (lib) (requires download & build)
 - crypton-asn1-parse-0.10.0 (lib) (requires download & build)
 - crypton-asn1-encoding-0.10.0 (lib) (requires download & build)
 - mlkem-0.2.0.0 (lib) (requires download & build)
 - hpke-0.1.0 (lib) (requires download & build)
 - cassava-megaparsec-2.1.1 (lib) (requires download & build)
 - semigroupoids-6.0.2 (lib) (requires download & build)
 - profunctors-5.6.3 (lib) (requires download & build)
 - RSA-2.4.1 (lib) (requires download & build)
 - tasty-1.5.4 (lib) (requires download & build)
 - crypton-x509-1.9.0 (lib) (requires download & build)
 - semialign-1.3.1.1 (lib) (requires download & build)
 - modern-uri-0.3.6.1 (lib) (requires download & build)
 - authenticate-oauth-1.7 (lib) (requires download & build)
 - tasty-hunit-0.10.2 (lib) (requires download & build)
 - crypton-x509-store-1.9.0 (lib) (requires download & build)
 - aeson-2.2.4.1 (lib) (requires download & build)
 - crypton-x509-validation-1.9.0 (lib) (requires download & build)
 - crypton-x509-system-1.9.0 (lib) (requires download & build)
 - shakespeare-2.2.0 (lib) (requires download & build)
 - aeson-pretty-0.8.10 (lib) (requires download & build)
 - tls-2.4.1 (lib) (requires download & build)
 - hledger-lib-1.99 (lib) (first run)
 - crypton-connection-0.4.6 (lib) (requires download & build)
 - http-client-tls-0.4.0 (lib) (requires download & build)
 - req-3.13.4 (lib) (requires download & build)
 - hledger-1.99 (lib) (first run)
 - hledger-1.99 (exe:hledger) (first run)

- HUnit-1.6.2.0 (lib) (requires download & build)
 - alex-3.5.4.2 (exe:alex) (requires download & build)
 - attoparsec-aeson-2.2.2.0 (lib) (requires download & build)
 - auto-update-0.2.6 (lib) (requires download & build)
 - base-unicode-symbols-0.2.4.2 (lib:base-unicode-symbols) (requires download & build)
 - bitvec-1.1.6.0 (lib) (requires download & build)
 - bsb-http-chunked-0.0.0.4 (lib) (requires download & build)
 - byteable-0.1.1 (lib) (requires download & build)
 - cabal-doctest-1.0.12 (lib) (requires download & build)
 - css-text-0.1.3.0 (lib) (requires download & build)
 - easy-file-0.2.5 (lib) (requires download & build)
 - email-validate-2.3.2.21 (lib) (requires download & build)
 - happy-lib-2.2 (lib:grammar) (requires download & build)
 - haskell-lexer-1.2.1 (lib) (requires download & build)
 - hspec-discover-2.11.17 (lib) (requires download & build)
 - http-date-0.0.11 (lib) (requires download & build)
 - libyaml-clib-0.2.5 (lib) (requires download & build)
 - lift-type-0.1.2.0 (lib) (requires download & build)
 - lifted-base-0.2.3.12 (lib) (requires download & build)
 - monad-loops-0.4.3 (lib) (requires download & build)
 - path-pieces-0.2.1 (lib) (requires download & build)
 - persistent-template-2.12.0.0 (lib) (requires download & build)
 - psqueues-0.2.8.3 (lib) (requires download & build)
 - recv-0.1.1 (lib) (requires download & build)
 - replace-megaparsec-1.5.0.1 (lib) (requires download & build)
 - resource-pool-0.5.0.0 (lib) (requires download & build)
 - resourcet-1.3.0 (lib) (requires download & build)
 - setenv-0.1.1.3 (lib) (requires download & build)
 - silently-1.2.5.4 (lib) (requires download & build)
 - simple-sendfile-0.2.32 (lib) (requires download & build)
 - skein-1.0.9.4 (lib) (requires download & build)
 - stm-chans-3.0.0.11 (lib) (requires download & build)
 - tagsoup-0.14.8 (lib) (requires download & build)
 - th-lift-instances-0.1.20 (lib) (requires download & build)
 - time-manager-0.3.2 (lib) (requires download & build)
 - typed-process-0.2.13.0 (lib) (requires download & build)
 - unliftio-0.2.25.1 (lib) (requires download & build)
 - vault-0.3.1.6 (lib) (requires download & build)
 - word8-0.1.3 (lib) (requires download & build)
 - xml-types-0.3.8 (lib) (requires download & build)
 - quickcheck-io-0.2.0 (lib) (requires download & build)
 - hspec-expectations-0.8.4 (lib) (requires download & build)
 - vector-algorithms-0.9.1.0 (lib) (requires download & build)
 - fast-logger-3.2.6 (lib) (requires download & build)
 - happy-lib-2.2 (lib:tabular) (requires download & build)
 - happy-lib-2.2 (lib:frontend) (requires download & build)
 - network-control-0.1.7 (lib) (requires download & build)
 - clientsession-0.9.3.0 (lib) (requires download & build)
 - xss-sanitize-0.3.7.2 (lib) (requires download & build)
 - http-semantics-0.4.0 (lib) (requires download & build)
 - wai-3.2.4 (lib) (requires download & build)
 - hspec-core-2.11.17 (lib) (requires download & build)
 - mono-traversable-1.0.21.0 (lib) (requires download & build)
 - happy-lib-2.2 (lib:backend-lalr) (requires download & build)
 - happy-lib-2.2 (lib:backend-glr) (requires download & build)
 - http2-5.4.0 (lib) (requires download & build)
 - wai-logger-2.5.0 (lib) (requires download & build)
 - wai-cors-0.2.7 (lib) (requires download & build)
 - hspec-2.11.17 (lib) (requires download & build)
 - conduit-1.3.6.1 (lib) (requires download & build)
 - happy-lib-2.2 (lib) (requires download & build)
 - warp-3.4.13 (lib) (requires download & build)
 - libyaml-0.1.4 (lib) (requires download & build)
 - conduit-extra-1.3.8 (lib) (requires download & build)
 - happy-2.2 (exe:happy) (requires download & build)
 - wai-handler-launch-3.0.3.1 (lib:wai-handler-launch) (requires download & build)
 - wai-extra-3.1.18 (lib) (requires download & build)
 - yaml-0.11.11.2 (lib) (requires download & build)
 - xml-conduit-1.10.1.0 (lib:xml-conduit) (requires download & build)
 - monad-logger-0.3.42 (lib) (requires download & build)
 - http-conduit-2.3.9.1 (lib) (requires download & build)
 - crypton-conduit-0.3.0 (lib) (requires download & build)
 - pretty-show-1.10 (lib) (requires download & build)
 - language-javascript-0.7.1.0 (lib) (requires download & build)
 - wai-app-static-3.2.1 (lib) (requires download & build)
 - html-conduit-1.3.2.2 (lib) (requires download & build)
 - yesod-core-1.6.29.1 (lib) (requires download & build)
 - persistent-2.18.1.0 (lib) (requires download & build)
 - hjsmin-0.2.1 (lib) (requires download & build)
 - yesod-test-1.7.0.1 (lib) (requires download & build)
 - yesod-persistent-1.6.0.8 (lib) (requires download & build)
 - yesod-static-1.6.1.2 (lib) (requires download & build)
 - yesod-form-1.7.9.2 (lib) (requires download & build)
 - yesod-1.6.2.1 (lib) (requires download & build)
 - hledger-web-1.99 (lib) (first run)
 - hledger-web-1.99 (exe:hledger-web) (first run)

Both memory and its replacement ram are in this set, and both provide ByteArrayAccess. Perhaps yesod-static needs to specify ram (or memory) explicitly when importing, with PackageImports ?

Activity

  1. simonmichael commented on May 1, 2026

    @simonmichael
    ContributorAuthor

    PS: a workaround is to add this in cabal.project:

    constraints: ram < 0
    
  2. peti commented on Jun 9, 2026

    @peti

    We have run into the same problem trying to package yesod-static for openSUSE Tumbleweed. It would be great if there were a fix for this issue on Hackage.

  3. peti commented on Jun 9, 2026

    @peti

    I think the problem is that crypton-1.1.4 now uses ram instead of memory, which is fundamentally incompatible with the current version of yesod-static.

  4. leftaroundabout commented on Jun 12, 2026

    @leftaroundabout

    @peti I don't think it's fundamentally incompatible, it just requires importing the module that actually contains the corresponding instances. Cf. #1916

  5. peti commented on Jun 22, 2026

    @peti

    You are right. Your PR fixes this issue. Thank you very much.

  6. juhp commented on Jun 29, 2026

    @juhp

    Maybe related the testsuite also fails to compile:

           Building test suite 'tests' for yesod-static-1.6.1.3...
           [ 1 of 12] Compiling Yesod.EmbeddedStatic.Types
           [ 2 of 12] Compiling Yesod.EmbeddedStatic.Generators
           [ 3 of 12] Compiling GeneratorTestUtil
           [ 4 of 12] Compiling FileGeneratorTests
           Creating out.txt
           Creating out2.txt
           [ 5 of 12] Compiling EmbedTestGenerator
           [ 6 of 12] Compiling Yesod.Static
           /home/curators/work/unpack-dir/unpacked/yesod-static-1.6.1.3-2b60bdf08a48e377defa7c3634684ebc7b33da0c47bdcae6338f9e1abe95aaee/Yesod/Static.hs:414:22: error: [GHC-39999]
               • Could not deduce ‘ByteArray.ByteArrayAccess (Digest MD5)’
                   arising from a use of ‘ByteArray.convert’
                 from the context: ByteArray.ByteArray bout
                   bound by the inferred type of
                              encode :: ByteArray.ByteArray bout => Digest MD5 -> bout
                   at Yesod/Static.hs:414:11-56
               • In the expression: ByteArray.convert (d :: Digest MD5)
                 In an equation for ‘encode’:
                     encode d = ByteArray.convert (d :: Digest MD5)
                 In an equation for ‘base64md5File’:
                     base64md5File
                       = fmap (base64 . encode) . hashFile
                       where
                           encode d = ByteArray.convert (d :: Digest MD5)
               |
           414 |     where encode d = ByteArray.convert (d :: Digest MD5)
               |                      ^^^^^^^^^^^^^^^^^
    
           /home/curators/work/unpack-dir/unpacked/yesod-static-1.6.1.3-2b60bdf08a48e377defa7c3634684ebc7b33da0c47bdcae6338f9e1abe95aaee/Yesod/Static.hs:422:16: error: [GHC-39999]
               • Could not deduce ‘ByteArray.ByteArrayAccess (Digest MD5)’
                   arising from a use of ‘ByteArray.convert’
                 from the context: ByteArray.ByteArray bout
                   bound by the inferred type of
                              encode :: ByteArray.ByteArray bout => Digest MD5 -> bout
                   at Yesod/Static.hs:422:5-50
               • In the expression: ByteArray.convert (d :: Digest MD5)
                 In an equation for ‘encode’:
                     encode d = ByteArray.convert (d :: Digest MD5)
                 In an equation for ‘base64md5’:
                     base64md5 lbs
                       = base64
                           $ encode $ runConduitPure $ Conduit.sourceLazy lbs .| sinkHash
                       where
                           encode d = ByteArray.convert (d :: Digest MD5)
               |
           422 |     encode d = ByteArray.convert (d :: Digest MD5)
               |                ^^^^^^^^^^^^^^^^^
    

    Note that Stackage is moving to crypton-1.1 now

  7. simonmichael commented on Aug 27, 2026

    @simonmichael
    ContributorAuthor

    This has been broken for 4 months.. what can we do to help ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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