Updates cabal freeze file

#### TODO

- [x] fix `hashable >= 1.3.1` serialization ordering issue [^1]
  - `test_graphql_mutations.py::TestGraphQLMutateEnums` was failing
- [x] fix `unordered-containers` serialization ordering issue [^2]
  - `test_graphql_queries.py` was failing on Citus
- [ ] verify that no new failures have been introduced
- [ ] open issues to fix the above
  - identify test cases that "leak" implementation details by depending on `hashable` instance ordering
  - bump `hashable >= 1.3.1` and update test cases with new ordering OR modify them so that ordering is stable
  - bump `unordered-containers >= 0.2.15.0` and update test cases with new ordering OR modify them so that ordering is stable
    - one of the test cases was failing on string equality comparison for a generated Citus query
    - we probably don't want to _actually_ do this unless there are _very specific_ guarantees we want to make about generated query structure
---

Just what it says on the tin.

https://github.com/hasura/graphql-engine-mono/pull/3538 updated the freeze file a few weeks ago, but it looks like the index state hadn't been updated since December so a lot of stuff that had newer versions didn't get updated.

---

EDIT: I should add, the motivation for doing this in the first place is that `hspec > 2.8.4` now supports specifying filtering spec trees based on patterns provided by the `HSPEC_MATCH` environment variable.

For example, one could have a script that executes the following:
```
HSPEC_MATCH="PostgreSQL" \
  ghcid \
    --command \
      'cabal repl graphql-engine:test:tests-hspec \
         --repl-option -O0 \
         --repl-option -fobject-code' \
    --test "main"
```
...which will loop on typechecking the `tests-hspec` component, and then as soon as it passes (i.e. no warnings or errors) will run _only_ the `PostgreSQL` sub-components.

[^1]: `hashable >= 1.3.1.0` [updated its default salts](https://github.com/haskell-unordered-containers/hashable/pull/196), which [broke serialization ordering](https://github.com/haskell/aeson/issues/837)
[^2]: `unordered-containers >= 0.2.16.0` [introduced changes to some of its internal functions](https://hackage.haskell.org/package/unordered-containers-0.2.16.0/changelog) which seem like they could have affected serialization stability

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3672
GitOrigin-RevId: bbd1d48c73db4021913f0b5345b7315a8d6525d3
This commit is contained in:
jkachmar 2022-02-18 00:31:12 -05:00 committed by hasura-bot
parent bd4b643cba
commit d50aae87a5
6 changed files with 180 additions and 227 deletions

View File

@ -1,27 +1,27 @@
active-repositories: hackage.haskell.org:merge
constraints: any.Cabal ==3.2.0.0,
constraints: any.Cabal ==3.2.1.0,
Cabal -bundled-binary-generic,
any.HTTP ==4000.3.15,
any.HTTP ==4000.3.16,
HTTP -conduit10 -mtl1 +network-uri -warn-as-error -warp-tests,
any.HUnit ==1.6.2.0,
any.OneTuple ==0.3,
any.Only ==0.1,
any.QuickCheck ==2.14.2,
QuickCheck +old-random +templatehaskell,
QuickCheck -old-random +templatehaskell,
any.RSA ==2.4.1,
any.SHA ==1.6.4.4,
SHA -exe,
any.Spock-core ==0.14.0.0,
any.StateVar ==1.2.1,
any.StateVar ==1.2.2,
any.adjunctions ==4.4,
any.aeson ==1.5.5.1,
aeson -bytestring-builder -cffi -developer -fast,
any.aeson ==1.5.6.0,
aeson -bytestring-builder +cffi -developer -fast,
any.aeson-casing ==0.2.0.0,
any.aeson-pretty ==0.8.8,
any.aeson-pretty ==0.8.9,
aeson-pretty -lib-only,
any.aeson-qq ==0.8.3,
any.alex ==3.2.6,
alex +small_base,
any.ansi-terminal ==0.11,
any.aeson-qq ==0.8.4,
any.alex ==3.2.7.1,
any.ansi-terminal ==0.11.1,
ansi-terminal -example,
any.ansi-wl-pprint ==0.6.9,
ansi-wl-pprint -example,
@ -31,64 +31,64 @@ constraints: any.Cabal ==3.2.0.0,
any.asn1-parse ==0.9.5,
any.asn1-types ==0.3.4,
any.assoc ==1.0.2,
any.async ==2.2.2,
any.async ==2.2.4,
async -bench,
any.atomic-primops ==0.8.4,
atomic-primops -debug,
any.attoparsec ==0.13.2.5,
any.attoparsec ==0.14.4,
attoparsec -developer,
any.attoparsec-iso8601 ==1.0.2.0,
any.attoparsec-iso8601 ==1.0.2.1,
attoparsec-iso8601 -developer -fast,
any.authenticate-oauth ==1.6.0.1,
any.authenticate-oauth ==1.7,
any.auto-update ==0.1.6,
any.barbies ==2.0.3.1,
any.base ==4.14.3.0,
any.base-compat ==0.11.2,
any.base-compat-batteries ==0.11.2,
any.base-orphans ==0.8.4,
any.base-prelude ==1.4,
any.base16-bytestring ==1.0.1.0,
any.base64-bytestring ==1.2.0.1,
any.basement ==0.0.11,
any.bifunctors ==5.5.10,
any.base-compat ==0.12.1,
any.base-compat-batteries ==0.12.1,
any.base-orphans ==0.8.6,
any.base16-bytestring ==1.0.2.0,
any.base64-bytestring ==1.2.1.0,
any.basement ==0.0.12,
any.bifunctors ==5.5.11,
bifunctors +semigroups +tagged,
any.binary ==0.8.8.0,
any.binary-parser ==0.5.6,
any.blaze-builder ==0.4.2.1,
any.binary-parser ==0.5.7.1,
any.blaze-builder ==0.4.2.2,
any.blaze-html ==0.9.1.2,
any.blaze-markup ==0.8.2.7,
any.blaze-textual ==0.2.1.0,
any.blaze-markup ==0.8.2.8,
any.blaze-textual ==0.2.2.1,
blaze-textual -developer -integer-simple +native,
any.bsb-http-chunked ==0.0.0.4,
any.byteorder ==1.0.4,
any.bytestring ==0.10.12.0,
any.bytestring-builder ==0.10.8.2.0,
bytestring-builder +bytestring_has_builder,
any.bytestring-lexing ==0.5.0.2,
any.bytestring-strict-builder ==0.4.5.3,
any.cabal-doctest ==1.0.8,
any.call-stack ==0.3.0,
any.bytestring-lexing ==0.5.0.8,
any.bytestring-strict-builder ==0.4.5.5,
any.cabal-doctest ==1.0.9,
any.call-stack ==0.4.0,
any.case-insensitive ==1.2.1.0,
any.cereal ==0.5.8.1,
any.cereal ==0.5.8.2,
cereal -bytestring-builder,
any.charset ==0.3.7.1,
any.charset ==0.3.9,
any.ci-info ==0.1.0.0,
any.clock ==0.8.2,
any.clock ==0.8.3,
clock -llvm,
any.cmdargs ==0.10.20,
any.cmdargs ==0.10.21,
cmdargs +quotation -testprog,
any.colour ==2.3.5,
any.colour ==2.3.6,
any.comonad ==5.0.8,
comonad +containers +distributive +indexed-traversable,
any.concise ==0.1.0.1,
any.concurrent-output ==1.10.12,
any.conduit ==1.3.4,
any.concurrent-output ==1.10.15,
any.conduit ==1.3.4.2,
any.conduit-extra ==1.3.5,
any.connection ==0.3.1,
any.constraints ==0.12,
any.constraints-extras ==0.3.0.2,
any.constraints ==0.13.3,
any.constraints-extras ==0.3.2.1,
constraints-extras +build-readme,
any.containers ==0.6.5.1,
any.contravariant ==1.5.3,
any.contravariant ==1.5.5,
contravariant +semigroups +statevar +tagged,
any.cookie ==0.4.5,
any.cron ==0.7.0,
@ -96,9 +96,9 @@ constraints: any.Cabal ==3.2.0.0,
any.crypto-api ==0.13.3,
crypto-api -all_cpolys,
any.crypto-pubkey-types ==0.4.3,
any.cryptohash-md5 ==0.11.100.1,
any.cryptohash-sha1 ==0.11.100.1,
any.cryptonite ==0.28,
any.cryptohash-md5 ==0.11.101.0,
any.cryptohash-sha1 ==0.11.101.0,
any.cryptonite ==0.29,
cryptonite -check_alignment +integer-gmp -old_toolchain_inliner +support_aesni +support_deepseq -support_pclmuldq +support_rdrand -support_sse +use_target_attributes,
any.data-bword ==0.1.0.1,
any.data-checked ==0.3,
@ -107,14 +107,14 @@ constraints: any.Cabal ==3.2.0.0,
any.data-default-instances-containers ==0.0.1,
any.data-default-instances-dlist ==0.0.1,
any.data-default-instances-old-locale ==0.0.1,
any.data-dword ==0.3.2,
any.data-dword ==0.3.2.1,
any.data-endian ==0.1.1,
any.data-fix ==0.3.1,
any.data-fix ==0.3.2,
any.data-has ==0.4.0.0,
any.data-serializer ==0.3.4.1,
any.data-serializer ==0.3.5,
any.data-textual ==0.3.0.3,
any.deepseq ==1.4.4.0,
any.deferred-folds ==0.9.15,
any.deferred-folds ==0.9.18.1,
any.dependent-map ==0.4.0.0,
any.dependent-sum ==0.7.1.0,
any.directory ==1.3.6.0,
@ -122,7 +122,7 @@ constraints: any.Cabal ==3.2.0.0,
distributive +semigroups +tagged,
any.dlist ==1.0,
dlist -werror,
any.double-conversion ==2.0.2.0,
any.double-conversion ==2.0.4.1,
double-conversion -developer,
any.easy-file ==0.2.2,
any.either ==5.0.1.1,
@ -130,27 +130,27 @@ constraints: any.Cabal ==3.2.0.0,
any.ekg-json ==0.1.0.7,
any.ekg-statsd ==0.2.5.0,
any.ekg-wai ==0.1.0.3,
any.entropy ==0.4.1.6,
any.entropy ==0.4.1.7,
entropy -halvm,
any.erf ==2.0.0.0,
any.errors ==2.3.0,
any.exceptions ==0.10.4,
any.fail ==4.9.0.0,
any.fast-logger ==3.0.2,
any.file-embed ==0.0.13.0,
any.fast-logger ==3.1.1,
any.file-embed ==0.0.15.0,
any.filepath ==1.4.2.1,
any.flush-queue ==1.0.0,
any.focus ==1.0.2,
any.foldl ==1.4.10,
any.formatting ==7.1.1,
any.free ==5.1.6,
any.focus ==1.0.3,
any.foldl ==1.4.12,
any.formatting ==7.1.3,
any.free ==5.1.7,
any.generic-monoid ==0.1.0.1,
any.generics-sop ==0.5.1.1,
any.generics-sop ==0.5.1.2,
any.ghc ==8.10.7,
any.ghc-boot ==8.10.7,
any.ghc-boot-th ==8.10.7,
any.ghc-heap ==8.10.7,
any.ghc-heap-view ==0.6.2,
any.ghc-heap-view ==0.6.3,
ghc-heap-view -prim-supports-any,
any.ghc-prim ==0.6.1,
any.ghci ==8.10.7,
@ -160,22 +160,21 @@ constraints: any.Cabal ==3.2.0.0,
any.hashable ==1.3.0.0,
hashable -examples +integer-gmp +sse2 -sse41,
any.hashable-time ==0.2.1,
hashable-time -old-locale,
any.hashtables ==1.2.4.1,
any.hashtables ==1.2.4.2,
hashtables -bounds-checking -debug -detailed-profiling -portable -sse42 +unsafe-tricks,
any.haskell-lexer ==1.1,
any.haskell-src-exts ==1.23.1,
any.haskell-src-meta ==0.8.7,
any.hedgehog ==1.0.4,
any.hedis ==0.14.2,
any.haskell-src-meta ==0.8.9,
any.hedgehog ==1.1.1,
any.hedis ==0.15.1,
hedis -dev,
any.hourglass ==0.2.12,
any.hpc ==0.6.1.0,
any.hsc2hs ==0.68.7,
any.hsc2hs ==0.68.8,
hsc2hs -in-ghc-tree,
any.hspec ==2.8.3,
any.hspec-core ==2.8.3,
any.hspec-discover ==2.8.3,
any.hspec ==2.9.4,
any.hspec-core ==2.9.4,
any.hspec-discover ==2.9.4,
any.hspec-expectations ==0.8.2,
any.hspec-expectations-lifted ==0.10.0,
any.hspec-hedgehog ==0.0.1.2,
@ -183,87 +182,85 @@ constraints: any.Cabal ==3.2.0.0,
any.hspec-wai-json ==0.11.0,
any.http-api-data ==0.4.3,
http-api-data -use-text-show,
any.http-client ==0.7.5,
any.http-client ==0.7.11,
http-client +network-uri,
any.http-client-tls ==0.3.5.3,
any.http-conduit ==2.3.7.4,
any.http-client-tls ==0.3.6.1,
any.http-conduit ==2.3.8,
http-conduit +aeson,
any.http-date ==0.0.10,
any.http-date ==0.0.11,
any.http-media ==0.8.0.0,
any.http-types ==0.12.3,
any.http2 ==2.0.5,
http2 -devel,
any.hvect ==0.4.0.0,
any.http2 ==3.0.3,
http2 -devel -doc -h2spec,
any.hvect ==0.4.0.1,
any.immortal ==0.2.2.1,
any.indexed-profunctors ==0.1,
any.indexed-traversable ==0.1.1,
any.insert-ordered-containers ==0.2.3.1,
any.inspection-testing ==0.4.5.0,
any.indexed-profunctors ==0.1.1,
any.indexed-traversable ==0.1.2,
any.indexed-traversable-instances ==0.1.1,
any.insert-ordered-containers ==0.2.5.1,
any.inspection-testing ==0.4.6.0,
inspection-testing -more-tests -old-text-tests,
any.integer-gmp ==1.0.3.0,
any.integer-logarithms ==1.0.3.1,
integer-logarithms -check-bounds +integer-gmp,
any.invariant ==0.5.4,
any.iproute ==1.7.10,
any.jose ==0.8.4,
any.invariant ==0.5.5,
any.iproute ==1.7.12,
any.jose ==0.8.5.1,
jose -demos,
any.kan-extensions ==5.2.1,
any.kan-extensions ==5.2.3,
any.keys ==3.12.3,
any.kriti-lang ==0.3.0,
any.lens ==4.19.2,
lens -benchmark-uniplate -dump-splices +inlining -j -old-inline-pragmas -safe +test-doctests +test-hunit +test-properties +test-templates +trustworthy,
any.lens-aeson ==1.1,
lens-aeson +test-doctests,
any.lens ==5.1,
lens -benchmark-uniplate -dump-splices +inlining -j +test-hunit +test-properties +test-templates +trustworthy,
any.lens-aeson ==1.1.3,
any.libyaml ==0.1.2,
libyaml -no-unicode -system-libyaml,
any.lifted-async ==0.10.1.2,
any.lifted-async ==0.10.2.2,
any.lifted-base ==0.2.3.12,
any.list-t ==1.0.4,
any.loch-th ==0.2.2,
any.math-functions ==0.3.4.1,
math-functions +system-erf +system-expm1,
any.megaparsec ==9.0.1,
any.list-t ==1.0.5.1,
any.logict ==0.7.0.3,
any.megaparsec ==9.2.0,
megaparsec -dev,
any.memory ==0.15.0,
any.memory ==0.16.0,
memory +support_basement +support_bytestring +support_deepseq +support_foundation,
any.mime-types ==0.1.0.9,
any.mmorph ==1.1.4,
any.monad-control ==1.0.2.3,
any.mmorph ==1.2.0,
any.monad-control ==1.0.3.1,
any.monad-logger ==0.3.36,
monad-logger +template_haskell,
any.monad-loops ==0.4.3,
monad-loops +base4,
any.monad-time ==0.3.1.0,
any.monad-validate ==1.2.0.0,
any.mono-traversable ==1.0.15.1,
any.mono-traversable ==1.0.15.3,
any.mtl ==2.2.2,
any.mtl-compat ==0.2.2,
mtl-compat -two-point-one -two-point-two,
any.mustache ==2.3.1,
any.mwc-random ==0.14.0.0,
any.mysql ==0.2.0.1,
any.mustache ==2.4.0,
any.mysql ==0.2.1,
mysql -developer,
any.mysql-simple ==0.4.6,
any.mysql-simple ==0.4.7.1,
mysql-simple -developer,
any.natural-transformation ==0.4,
any.network ==3.1.2.5,
any.network ==3.1.2.7,
network -devel,
any.network-byte-order ==0.1.6,
any.network-info ==0.2.0.10,
any.network-info ==0.2.1,
any.network-ip ==0.3.0.3,
any.network-uri ==2.6.4.1,
any.odbc ==0.2.6,
any.old-locale ==1.0.0.7,
any.old-time ==1.1.0.3,
any.openapi3 ==3.1.0,
any.optics-core ==0.3.0.1,
any.optics-extra ==0.3,
any.optics-th ==0.3.0.2,
any.optparse-applicative ==0.16.1.0,
any.openapi3 ==3.2.1,
any.optics-core ==0.4,
optics-core -explicit-generic-labels,
any.optics-extra ==0.4,
any.optics-th ==0.4,
any.optparse-applicative ==0.17.0.0,
optparse-applicative +process,
any.optparse-generic ==1.4.4,
any.optparse-generic ==1.4.7,
any.parallel ==3.2.2.0,
any.parsec ==3.1.14.0,
any.parsec ==3.1.14.0 || ==3.1.15.0,
any.parser-combinators ==1.3.0,
parser-combinators -dev,
any.parsers ==0.12.10,
@ -272,12 +269,11 @@ constraints: any.Cabal ==3.2.0.0,
pcre-light -old_base -use-pkg-config,
any.pem ==0.2.4,
any.pg-client ==0.1.0,
any.placeholders ==0.1,
any.pointed ==5.0.2,
any.pointed ==5.0.3,
pointed +comonad +containers +kan-extensions +semigroupoids +semigroups +stm +tagged +transformers +unordered-containers,
any.port-utils ==0.2.1.0,
any.postgres-options ==0.2.0.0,
any.postgresql-binary ==0.12.3.3,
any.postgresql-binary ==0.12.4.1,
any.postgresql-libpq ==0.9.4.3,
postgresql-libpq -use-pkg-config,
any.postgresql-simple ==0.6.4,
@ -285,60 +281,60 @@ constraints: any.Cabal ==3.2.0.0,
any.pretty-show ==1.10,
any.pretty-simple ==4.0.0.0,
pretty-simple -buildexample -buildexe,
any.prettyprinter ==1.7.0,
prettyprinter -buildreadme,
any.prettyprinter-ansi-terminal ==1.1.2,
any.primitive ==0.7.1.0,
any.primitive-extras ==0.8,
any.primitive-unlifted ==0.1.3.0,
any.prettyprinter ==1.7.1,
prettyprinter -buildreadme +text,
any.prettyprinter-ansi-terminal ==1.1.3,
any.primitive ==0.7.3.0,
any.primitive-extras ==0.10.1.4,
any.primitive-unlifted ==0.1.3.1,
any.process ==1.6.13.2,
any.profunctors ==5.6.1,
any.psqueues ==0.2.7.2,
any.quickcheck-instances ==0.3.25.2,
any.profunctors ==5.6.2,
any.psqueues ==0.2.7.3,
any.quickcheck-instances ==0.3.27,
quickcheck-instances -bytestring-builder,
any.quickcheck-io ==0.2.0,
any.random ==1.1,
any.random ==1.2.1,
any.reflection ==2.1.6,
reflection -slow +template-haskell,
any.regex-base ==0.94.0.0,
any.regex-tdfa ==1.3.1.0,
any.regex-base ==0.94.0.2,
any.regex-tdfa ==1.3.1.1,
regex-tdfa -force-o2,
any.reroute ==0.6.0.0,
any.resource-pool ==0.2.3.2,
resource-pool -developer,
any.resourcet ==1.2.4.2,
any.retry ==0.8.1.2,
any.resourcet ==1.2.4.3,
any.retry ==0.9.1.0,
retry -lib-werror,
any.rts ==1.0.1,
any.safe ==0.3.19,
any.safe-exceptions ==0.1.7.2,
any.scanner ==0.3.1,
any.scientific ==0.3.6.2,
any.scientific ==0.3.7.0,
scientific -bytestring-builder -integer-simple,
any.semialign ==1.1.0.1,
any.semialign ==1.2.0.1,
semialign +semigroupoids,
any.semigroupoids ==5.3.5,
any.semigroupoids ==5.3.7,
semigroupoids +comonad +containers +contravariant +distributive +tagged +unordered-containers,
any.semigroups ==0.19.1,
any.semigroups ==0.20,
semigroups +binary +bytestring -bytestring-builder +containers +deepseq +hashable +tagged +template-haskell +text +transformers +unordered-containers,
any.semver ==0.4.0.1,
any.setenv ==0.1.1.3,
any.shakespeare ==2.0.25,
any.shakespeare ==2.0.25.1,
shakespeare -test_coffee -test_export -test_roy,
any.simple-sendfile ==0.2.30,
simple-sendfile +allow-bsd,
any.socks ==0.6.1,
any.some ==1.0.1,
any.some ==1.0.3,
some +newtype-unsafe,
any.sop-core ==0.5.0.1,
any.sop-core ==0.5.0.2,
any.split ==0.2.3.4,
any.splitmix ==0.1.0.3,
any.splitmix ==0.1.0.4,
splitmix -optimised-mixer,
any.stm ==2.5.0.1,
any.stm-chans ==3.0.0.4,
any.stm-chans ==3.0.0.6,
any.stm-containers ==1.2,
any.stm-hamt ==1.2.0.4,
any.streaming-commons ==0.2.2.1,
any.stm-hamt ==1.2.0.7,
any.streaming-commons ==0.2.2.4,
streaming-commons -use-bytestring-builder,
any.strict ==0.4.0.1,
strict +assoc,
@ -347,30 +343,30 @@ constraints: any.Cabal ==3.2.0.0,
any.system-filepath ==0.4.14,
any.tagged ==0.8.6.1,
tagged +deepseq +transformers,
any.tasty ==1.4.1,
any.tasty ==1.4.2.1,
tasty +clock +unix,
any.tasty-golden ==2.3.4,
any.tasty-golden ==2.3.5,
tasty-golden -build-example,
any.template-haskell ==2.16.0.0,
any.temporary ==1.3,
any.terminal-size ==0.3.2.1,
any.terminfo ==0.4.1.4,
any.text ==1.2.3.2,
any.text ==1.2.3.2 || ==1.2.4.1,
text -developer -integer-simple,
any.text-builder ==0.6.6.1,
any.text-builder ==0.6.6.3,
any.text-conversions ==0.3.1,
any.text-latin1 ==0.3.1,
any.text-printer ==0.5.0.1,
any.text-short ==0.1.3,
any.text-printer ==0.5.0.2,
any.text-short ==0.1.5,
text-short -asserts,
any.tf-random ==0.5,
any.th-abstraction ==0.4.2.0,
any.th-compat ==0.1.1,
any.th-expand-syns ==0.4.8.0,
any.th-abstraction ==0.4.3.0,
any.th-compat ==0.1.3,
any.th-expand-syns ==0.4.9.0,
any.th-lift ==0.8.2,
any.th-lift-instances ==0.1.18,
any.th-orphans ==0.13.11,
any.th-reify-many ==0.1.9,
any.th-lift-instances ==0.1.19,
any.th-orphans ==0.13.12,
any.th-reify-many ==0.1.10,
any.these ==1.1.1.1,
these +assoc,
any.time ==1.9.3,
@ -379,24 +375,25 @@ constraints: any.Cabal ==3.2.0.0,
any.time-locale-compat ==0.1.1.5,
time-locale-compat -old-locale,
any.time-manager ==0.0.0,
any.tls ==1.5.5,
any.tls ==1.5.7,
tls +compat -hans +network,
any.tmp-postgres ==1.34.1.0,
any.transformers ==0.5.6.2,
any.transformers-base ==0.4.5.2,
any.transformers-base ==0.4.6,
transformers-base +orphaninstances,
any.transformers-compat ==0.6.6,
any.transformers-compat ==0.7.1,
transformers-compat -five +five-three -four +generic-deriving +mtl -three -two,
any.type-equality ==1,
any.type-hint ==0.1,
any.typed-process ==0.2.6.0,
any.typed-process ==0.2.8.0,
any.unbounded-delays ==0.1.1.1,
any.unix ==2.7.2.2,
any.unix-compat ==0.5.3,
any.unix-compat ==0.5.4,
unix-compat -old-time,
any.unix-time ==0.4.7,
any.unliftio ==0.2.21.0,
any.unliftio-core ==0.2.0.1,
any.unordered-containers ==0.2.13.0,
any.unordered-containers ==0.2.15.0,
unordered-containers -debug,
any.uri-bytestring ==0.3.3.1,
uri-bytestring -lib-werror,
@ -404,12 +401,12 @@ constraints: any.Cabal ==3.2.0.0,
uri-encode +network-uri -tools,
any.url ==2.1.3,
any.utf8-string ==1.0.2,
any.uuid ==1.3.13,
any.uuid-types ==1.0.3,
any.validation ==1.1,
any.vault ==0.3.1.4,
any.uuid ==1.3.15,
any.uuid-types ==1.0.5,
any.validation ==1.1.2,
any.vault ==0.3.1.5,
vault +useghc,
any.vector ==0.12.2.0,
any.vector ==0.12.3.1,
vector +boundschecks -internalchecks -unsafechecks -wall,
any.vector-algorithms ==0.8.0.4,
vector-algorithms +bench +boundschecks -internalchecks -llvm +properties -unsafechecks,
@ -420,26 +417,27 @@ constraints: any.Cabal ==3.2.0.0,
any.wai ==3.2.3,
any.wai-app-static ==3.1.7.2,
wai-app-static -print,
any.wai-extra ==3.1.6,
any.wai-extra ==3.1.8,
wai-extra -build-example,
any.wai-logger ==2.3.6,
any.warp ==3.3.14,
any.wai-logger ==2.4.0,
any.warp ==3.3.19,
warp +allow-sendfilefd -network-bytestring -warp-debug,
any.wcwidth ==0.0.2,
wcwidth -cli +split-base,
any.websockets ==0.12.7.2,
any.websockets ==0.12.7.3,
websockets -example,
any.witch ==0.3.4.1,
any.witch ==1.0.0.1,
witch -pedantic,
any.wl-pprint-annotated ==0.1.0.1,
any.word8 ==0.1.3,
any.wreq ==0.5.3.3,
wreq -aws -developer +doctest -httpbin,
any.x509 ==1.7.5,
any.x509-store ==1.6.7,
any.x509-system ==1.6.6,
any.x509-validation ==1.6.11,
any.yaml ==0.11.5.0,
any.x509 ==1.7.6,
any.x509-store ==1.6.9,
any.x509-system ==1.6.7,
any.x509-validation ==1.6.12,
any.yaml ==0.11.7.0,
yaml +no-examples +no-exe,
any.zlib ==0.6.2.2,
any.zlib ==0.6.2.3,
zlib -bundled-c-zlib -non-blocking-ffi -pkg-config
index-state: hackage.haskell.org 2021-12-09T17:38:20Z
index-state: hackage.haskell.org 2022-02-16T22:54:12Z

View File

@ -7,7 +7,6 @@ module Data.HashMap.Strict.Extended
groupOnNE,
differenceOn,
lpadZip,
mapKeys,
unionsWith,
isInverseOf,
)
@ -15,11 +14,11 @@ where
import Data.Align qualified as A
import Data.Foldable qualified as F
import Data.Function
import Data.Function (on)
import Data.HashMap.Strict as M
import Data.Hashable
import Data.Hashable (Hashable)
import Data.List.NonEmpty (NonEmpty (..))
import Data.These
import Data.These (These (That, These, This))
import Prelude
catMaybes :: HashMap k (Maybe v) -> HashMap k v
@ -65,20 +64,6 @@ lpadZip left =
That b -> Just (Nothing, b)
These a b -> Just (Just a, b)
-- | @'mapKeys' f s@ is the map obtained by applying @f@ to each key of @s@.
--
-- The size of the result may be smaller if @f@ maps two or more distinct
-- keys to the same new key. In this case the value at the greatest of the
-- original keys is retained.
--
-- > mapKeys (+ 1) (fromList [(5,"a"), (3,"b")]) == fromList [(4, "b"), (6, "a")]
-- > mapKeys (\ _ -> 1) (fromList [(1,"b"), (2,"a"), (3,"d"), (4,"c")]) == singleton 1 "c"
-- > mapKeys (\ _ -> 3) (fromList [(1,"b"), (2,"a"), (3,"d"), (4,"c")]) == singleton 3 "c"
--
-- copied from https://hackage.haskell.org/package/containers-0.6.4.1/docs/src/Data.Map.Internal.html#mapKeys
mapKeys :: (Ord k2, Hashable k2) => (k1 -> k2) -> HashMap k1 a -> HashMap k2 a
mapKeys f = fromList . foldrWithKey (\k x xs -> (f k, x) : xs) []
-- | The union of a list of maps, with a combining operation:
-- (@'unionsWith' f == 'Prelude.foldl' ('unionWith' f) 'empty'@).
--

View File

@ -10,7 +10,6 @@ import Data.Aeson.Casing qualified as J
import Data.Aeson.Extended
import Data.Aeson.TH qualified as J
import Data.Aeson.Types
import Data.HashSet.InsOrd (InsOrdHashSet, toHashSet)
import Data.Pool
import Data.Text.Extended (ToTxt (..))
import Database.MySQL.Base (Connection)
@ -21,10 +20,6 @@ import Hasura.Prelude
import Language.Haskell.TH
import Language.Haskell.TH.Syntax
-- Orphan instance, InsOrdHashSet doesn't have it.
instance NFData a => NFData (InsOrdHashSet a) where
rnf = rnf . toHashSet
$( fmap concat $ for
[''Aliased]
\name ->

View File

@ -5,15 +5,11 @@
module Hasura.Base.Instances () where
import Data.Aeson qualified as J
import Data.Functor.Product
import Data.GADT.Compare
import Data.Functor.Product (Product (Pair))
import Data.GADT.Compare (GCompare (gcompare), GOrdering (GEQ, GGT, GLT))
import Data.HashMap.Strict qualified as M
import Data.HashSet qualified as S
import Data.Hashable
import Data.Text
import Data.Time.Calendar
import Data.Time.Clock
import Data.Time.LocalTime
import Data.Text qualified as T
import Data.URL.Template qualified as UT
import Database.PG.Query qualified as Q
import Hasura.Prelude
@ -23,18 +19,6 @@ import System.Cron.Types qualified as C
import Text.Regex.TDFA qualified as TDFA
import Text.Regex.TDFA.Pattern qualified as TDFA
--------------------------------------------------------------------------------
-- Hashable
instance Hashable UTCTime where
hashWithSalt i = hashWithSalt i . show
instance Hashable Day where
hashWithSalt i = hashWithSalt i . show
instance Hashable TimeOfDay where
hashWithSalt i = hashWithSalt i . show
--------------------------------------------------------------------------------
-- Deepseq
@ -129,5 +113,5 @@ instance Q.FromCol C.CronSchedule where
Left err -> Left err
Right dbCron ->
case C.parseCronSchedule dbCron of
Left err' -> Left $ "invalid cron schedule " <> pack err'
Left err' -> Left $ "invalid cron schedule " <> T.pack err'
Right cron -> Right cron

View File

@ -6,7 +6,6 @@ where
import Data.Aeson qualified as J
import Data.Aeson.Ordered qualified as JO
import Data.Environment qualified as Env
import Data.HashMap.Strict qualified as Map
import Data.HashMap.Strict.Extended qualified as Map
import Data.HashMap.Strict.InsOrd qualified as OMap
import Data.HashSet qualified as HS

View File

@ -34,7 +34,6 @@ module Hasura.Prelude
-- * Map-related utilities
mapFromL,
mapKeys,
oMapFromL,
-- * Measuring and working with moments and durations
@ -88,13 +87,13 @@ import Data.Foldable as M
import Data.Function as M (on, (&))
import Data.Functor as M (($>), (<&>))
import Data.Functor.Const as M (Const)
import Data.HashMap.Strict as M (HashMap)
import Data.HashMap.Strict as M (HashMap, mapKeys)
import Data.HashMap.Strict qualified as Map
import Data.HashMap.Strict.InsOrd as M (InsOrdHashMap)
import Data.HashMap.Strict.InsOrd qualified as OMap
import Data.HashSet as M (HashSet)
import Data.Hashable (hashWithSalt)
import Data.Hashable as M (Hashable)
import Data.Hashable qualified as H
import Data.List as M
( find,
findIndex,
@ -215,13 +214,6 @@ findWithIndex p l = do
mapFromL :: (Eq k, Hashable k) => (a -> k) -> [a] -> Map.HashMap k a
mapFromL f = Map.fromList . map (\v -> (f v, v))
-- | re-key a map. In the case that @f@ is not injective you may end up with a
-- smaller map than what you started with.
--
-- This may be a code smell.
mapKeys :: (Eq k2, Hashable k2) => (k1 -> k2) -> Map.HashMap k1 a -> Map.HashMap k2 a
mapKeys f = Map.fromList . map (first f) . Map.toList
oMapFromL :: (Eq k, Hashable k) => (a -> k) -> [a] -> InsOrdHashMap k a
oMapFromL f = OMap.fromList . map (\v -> (f v, v))
@ -280,7 +272,7 @@ hasuraJSON :: J.Options
hasuraJSON = J.aesonPrefix J.snakeCase
instance (Hashable a) => Hashable (Seq a) where
hashWithSalt i = H.hashWithSalt i . toList
hashWithSalt i = hashWithSalt i . toList
-- | Given a structure with elements whose type is a 'Monoid', combine them via
-- the monoid's @('<>')@ operator.