mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-14 17:02:49 +03:00
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:
parent
bd4b643cba
commit
d50aae87a5
@ -1,27 +1,27 @@
|
|||||||
active-repositories: hackage.haskell.org:merge
|
active-repositories: hackage.haskell.org:merge
|
||||||
constraints: any.Cabal ==3.2.0.0,
|
constraints: any.Cabal ==3.2.1.0,
|
||||||
Cabal -bundled-binary-generic,
|
Cabal -bundled-binary-generic,
|
||||||
any.HTTP ==4000.3.15,
|
any.HTTP ==4000.3.16,
|
||||||
HTTP -conduit10 -mtl1 +network-uri -warn-as-error -warp-tests,
|
HTTP -conduit10 -mtl1 +network-uri -warn-as-error -warp-tests,
|
||||||
any.HUnit ==1.6.2.0,
|
any.HUnit ==1.6.2.0,
|
||||||
|
any.OneTuple ==0.3,
|
||||||
any.Only ==0.1,
|
any.Only ==0.1,
|
||||||
any.QuickCheck ==2.14.2,
|
any.QuickCheck ==2.14.2,
|
||||||
QuickCheck +old-random +templatehaskell,
|
QuickCheck -old-random +templatehaskell,
|
||||||
any.RSA ==2.4.1,
|
any.RSA ==2.4.1,
|
||||||
any.SHA ==1.6.4.4,
|
any.SHA ==1.6.4.4,
|
||||||
SHA -exe,
|
SHA -exe,
|
||||||
any.Spock-core ==0.14.0.0,
|
any.Spock-core ==0.14.0.0,
|
||||||
any.StateVar ==1.2.1,
|
any.StateVar ==1.2.2,
|
||||||
any.adjunctions ==4.4,
|
any.adjunctions ==4.4,
|
||||||
any.aeson ==1.5.5.1,
|
any.aeson ==1.5.6.0,
|
||||||
aeson -bytestring-builder -cffi -developer -fast,
|
aeson -bytestring-builder +cffi -developer -fast,
|
||||||
any.aeson-casing ==0.2.0.0,
|
any.aeson-casing ==0.2.0.0,
|
||||||
any.aeson-pretty ==0.8.8,
|
any.aeson-pretty ==0.8.9,
|
||||||
aeson-pretty -lib-only,
|
aeson-pretty -lib-only,
|
||||||
any.aeson-qq ==0.8.3,
|
any.aeson-qq ==0.8.4,
|
||||||
any.alex ==3.2.6,
|
any.alex ==3.2.7.1,
|
||||||
alex +small_base,
|
any.ansi-terminal ==0.11.1,
|
||||||
any.ansi-terminal ==0.11,
|
|
||||||
ansi-terminal -example,
|
ansi-terminal -example,
|
||||||
any.ansi-wl-pprint ==0.6.9,
|
any.ansi-wl-pprint ==0.6.9,
|
||||||
ansi-wl-pprint -example,
|
ansi-wl-pprint -example,
|
||||||
@ -31,64 +31,64 @@ constraints: any.Cabal ==3.2.0.0,
|
|||||||
any.asn1-parse ==0.9.5,
|
any.asn1-parse ==0.9.5,
|
||||||
any.asn1-types ==0.3.4,
|
any.asn1-types ==0.3.4,
|
||||||
any.assoc ==1.0.2,
|
any.assoc ==1.0.2,
|
||||||
any.async ==2.2.2,
|
any.async ==2.2.4,
|
||||||
async -bench,
|
async -bench,
|
||||||
any.atomic-primops ==0.8.4,
|
any.atomic-primops ==0.8.4,
|
||||||
atomic-primops -debug,
|
atomic-primops -debug,
|
||||||
any.attoparsec ==0.13.2.5,
|
any.attoparsec ==0.14.4,
|
||||||
attoparsec -developer,
|
attoparsec -developer,
|
||||||
any.attoparsec-iso8601 ==1.0.2.0,
|
any.attoparsec-iso8601 ==1.0.2.1,
|
||||||
attoparsec-iso8601 -developer -fast,
|
attoparsec-iso8601 -developer -fast,
|
||||||
any.authenticate-oauth ==1.6.0.1,
|
any.authenticate-oauth ==1.7,
|
||||||
any.auto-update ==0.1.6,
|
any.auto-update ==0.1.6,
|
||||||
|
any.barbies ==2.0.3.1,
|
||||||
any.base ==4.14.3.0,
|
any.base ==4.14.3.0,
|
||||||
any.base-compat ==0.11.2,
|
any.base-compat ==0.12.1,
|
||||||
any.base-compat-batteries ==0.11.2,
|
any.base-compat-batteries ==0.12.1,
|
||||||
any.base-orphans ==0.8.4,
|
any.base-orphans ==0.8.6,
|
||||||
any.base-prelude ==1.4,
|
any.base16-bytestring ==1.0.2.0,
|
||||||
any.base16-bytestring ==1.0.1.0,
|
any.base64-bytestring ==1.2.1.0,
|
||||||
any.base64-bytestring ==1.2.0.1,
|
any.basement ==0.0.12,
|
||||||
any.basement ==0.0.11,
|
any.bifunctors ==5.5.11,
|
||||||
any.bifunctors ==5.5.10,
|
|
||||||
bifunctors +semigroups +tagged,
|
bifunctors +semigroups +tagged,
|
||||||
any.binary ==0.8.8.0,
|
any.binary ==0.8.8.0,
|
||||||
any.binary-parser ==0.5.6,
|
any.binary-parser ==0.5.7.1,
|
||||||
any.blaze-builder ==0.4.2.1,
|
any.blaze-builder ==0.4.2.2,
|
||||||
any.blaze-html ==0.9.1.2,
|
any.blaze-html ==0.9.1.2,
|
||||||
any.blaze-markup ==0.8.2.7,
|
any.blaze-markup ==0.8.2.8,
|
||||||
any.blaze-textual ==0.2.1.0,
|
any.blaze-textual ==0.2.2.1,
|
||||||
blaze-textual -developer -integer-simple +native,
|
blaze-textual -developer -integer-simple +native,
|
||||||
any.bsb-http-chunked ==0.0.0.4,
|
any.bsb-http-chunked ==0.0.0.4,
|
||||||
any.byteorder ==1.0.4,
|
any.byteorder ==1.0.4,
|
||||||
any.bytestring ==0.10.12.0,
|
any.bytestring ==0.10.12.0,
|
||||||
any.bytestring-builder ==0.10.8.2.0,
|
any.bytestring-builder ==0.10.8.2.0,
|
||||||
bytestring-builder +bytestring_has_builder,
|
bytestring-builder +bytestring_has_builder,
|
||||||
any.bytestring-lexing ==0.5.0.2,
|
any.bytestring-lexing ==0.5.0.8,
|
||||||
any.bytestring-strict-builder ==0.4.5.3,
|
any.bytestring-strict-builder ==0.4.5.5,
|
||||||
any.cabal-doctest ==1.0.8,
|
any.cabal-doctest ==1.0.9,
|
||||||
any.call-stack ==0.3.0,
|
any.call-stack ==0.4.0,
|
||||||
any.case-insensitive ==1.2.1.0,
|
any.case-insensitive ==1.2.1.0,
|
||||||
any.cereal ==0.5.8.1,
|
any.cereal ==0.5.8.2,
|
||||||
cereal -bytestring-builder,
|
cereal -bytestring-builder,
|
||||||
any.charset ==0.3.7.1,
|
any.charset ==0.3.9,
|
||||||
any.ci-info ==0.1.0.0,
|
any.ci-info ==0.1.0.0,
|
||||||
any.clock ==0.8.2,
|
any.clock ==0.8.3,
|
||||||
clock -llvm,
|
clock -llvm,
|
||||||
any.cmdargs ==0.10.20,
|
any.cmdargs ==0.10.21,
|
||||||
cmdargs +quotation -testprog,
|
cmdargs +quotation -testprog,
|
||||||
any.colour ==2.3.5,
|
any.colour ==2.3.6,
|
||||||
any.comonad ==5.0.8,
|
any.comonad ==5.0.8,
|
||||||
comonad +containers +distributive +indexed-traversable,
|
comonad +containers +distributive +indexed-traversable,
|
||||||
any.concise ==0.1.0.1,
|
any.concise ==0.1.0.1,
|
||||||
any.concurrent-output ==1.10.12,
|
any.concurrent-output ==1.10.15,
|
||||||
any.conduit ==1.3.4,
|
any.conduit ==1.3.4.2,
|
||||||
any.conduit-extra ==1.3.5,
|
any.conduit-extra ==1.3.5,
|
||||||
any.connection ==0.3.1,
|
any.connection ==0.3.1,
|
||||||
any.constraints ==0.12,
|
any.constraints ==0.13.3,
|
||||||
any.constraints-extras ==0.3.0.2,
|
any.constraints-extras ==0.3.2.1,
|
||||||
constraints-extras +build-readme,
|
constraints-extras +build-readme,
|
||||||
any.containers ==0.6.5.1,
|
any.containers ==0.6.5.1,
|
||||||
any.contravariant ==1.5.3,
|
any.contravariant ==1.5.5,
|
||||||
contravariant +semigroups +statevar +tagged,
|
contravariant +semigroups +statevar +tagged,
|
||||||
any.cookie ==0.4.5,
|
any.cookie ==0.4.5,
|
||||||
any.cron ==0.7.0,
|
any.cron ==0.7.0,
|
||||||
@ -96,9 +96,9 @@ constraints: any.Cabal ==3.2.0.0,
|
|||||||
any.crypto-api ==0.13.3,
|
any.crypto-api ==0.13.3,
|
||||||
crypto-api -all_cpolys,
|
crypto-api -all_cpolys,
|
||||||
any.crypto-pubkey-types ==0.4.3,
|
any.crypto-pubkey-types ==0.4.3,
|
||||||
any.cryptohash-md5 ==0.11.100.1,
|
any.cryptohash-md5 ==0.11.101.0,
|
||||||
any.cryptohash-sha1 ==0.11.100.1,
|
any.cryptohash-sha1 ==0.11.101.0,
|
||||||
any.cryptonite ==0.28,
|
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,
|
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-bword ==0.1.0.1,
|
||||||
any.data-checked ==0.3,
|
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-containers ==0.0.1,
|
||||||
any.data-default-instances-dlist ==0.0.1,
|
any.data-default-instances-dlist ==0.0.1,
|
||||||
any.data-default-instances-old-locale ==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-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-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.data-textual ==0.3.0.3,
|
||||||
any.deepseq ==1.4.4.0,
|
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-map ==0.4.0.0,
|
||||||
any.dependent-sum ==0.7.1.0,
|
any.dependent-sum ==0.7.1.0,
|
||||||
any.directory ==1.3.6.0,
|
any.directory ==1.3.6.0,
|
||||||
@ -122,7 +122,7 @@ constraints: any.Cabal ==3.2.0.0,
|
|||||||
distributive +semigroups +tagged,
|
distributive +semigroups +tagged,
|
||||||
any.dlist ==1.0,
|
any.dlist ==1.0,
|
||||||
dlist -werror,
|
dlist -werror,
|
||||||
any.double-conversion ==2.0.2.0,
|
any.double-conversion ==2.0.4.1,
|
||||||
double-conversion -developer,
|
double-conversion -developer,
|
||||||
any.easy-file ==0.2.2,
|
any.easy-file ==0.2.2,
|
||||||
any.either ==5.0.1.1,
|
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-json ==0.1.0.7,
|
||||||
any.ekg-statsd ==0.2.5.0,
|
any.ekg-statsd ==0.2.5.0,
|
||||||
any.ekg-wai ==0.1.0.3,
|
any.ekg-wai ==0.1.0.3,
|
||||||
any.entropy ==0.4.1.6,
|
any.entropy ==0.4.1.7,
|
||||||
entropy -halvm,
|
entropy -halvm,
|
||||||
any.erf ==2.0.0.0,
|
any.erf ==2.0.0.0,
|
||||||
any.errors ==2.3.0,
|
any.errors ==2.3.0,
|
||||||
any.exceptions ==0.10.4,
|
any.exceptions ==0.10.4,
|
||||||
any.fail ==4.9.0.0,
|
any.fail ==4.9.0.0,
|
||||||
any.fast-logger ==3.0.2,
|
any.fast-logger ==3.1.1,
|
||||||
any.file-embed ==0.0.13.0,
|
any.file-embed ==0.0.15.0,
|
||||||
any.filepath ==1.4.2.1,
|
any.filepath ==1.4.2.1,
|
||||||
any.flush-queue ==1.0.0,
|
any.flush-queue ==1.0.0,
|
||||||
any.focus ==1.0.2,
|
any.focus ==1.0.3,
|
||||||
any.foldl ==1.4.10,
|
any.foldl ==1.4.12,
|
||||||
any.formatting ==7.1.1,
|
any.formatting ==7.1.3,
|
||||||
any.free ==5.1.6,
|
any.free ==5.1.7,
|
||||||
any.generic-monoid ==0.1.0.1,
|
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 ==8.10.7,
|
||||||
any.ghc-boot ==8.10.7,
|
any.ghc-boot ==8.10.7,
|
||||||
any.ghc-boot-th ==8.10.7,
|
any.ghc-boot-th ==8.10.7,
|
||||||
any.ghc-heap ==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,
|
ghc-heap-view -prim-supports-any,
|
||||||
any.ghc-prim ==0.6.1,
|
any.ghc-prim ==0.6.1,
|
||||||
any.ghci ==8.10.7,
|
any.ghci ==8.10.7,
|
||||||
@ -160,22 +160,21 @@ constraints: any.Cabal ==3.2.0.0,
|
|||||||
any.hashable ==1.3.0.0,
|
any.hashable ==1.3.0.0,
|
||||||
hashable -examples +integer-gmp +sse2 -sse41,
|
hashable -examples +integer-gmp +sse2 -sse41,
|
||||||
any.hashable-time ==0.2.1,
|
any.hashable-time ==0.2.1,
|
||||||
hashable-time -old-locale,
|
any.hashtables ==1.2.4.2,
|
||||||
any.hashtables ==1.2.4.1,
|
|
||||||
hashtables -bounds-checking -debug -detailed-profiling -portable -sse42 +unsafe-tricks,
|
hashtables -bounds-checking -debug -detailed-profiling -portable -sse42 +unsafe-tricks,
|
||||||
any.haskell-lexer ==1.1,
|
any.haskell-lexer ==1.1,
|
||||||
any.haskell-src-exts ==1.23.1,
|
any.haskell-src-exts ==1.23.1,
|
||||||
any.haskell-src-meta ==0.8.7,
|
any.haskell-src-meta ==0.8.9,
|
||||||
any.hedgehog ==1.0.4,
|
any.hedgehog ==1.1.1,
|
||||||
any.hedis ==0.14.2,
|
any.hedis ==0.15.1,
|
||||||
hedis -dev,
|
hedis -dev,
|
||||||
any.hourglass ==0.2.12,
|
any.hourglass ==0.2.12,
|
||||||
any.hpc ==0.6.1.0,
|
any.hpc ==0.6.1.0,
|
||||||
any.hsc2hs ==0.68.7,
|
any.hsc2hs ==0.68.8,
|
||||||
hsc2hs -in-ghc-tree,
|
hsc2hs -in-ghc-tree,
|
||||||
any.hspec ==2.8.3,
|
any.hspec ==2.9.4,
|
||||||
any.hspec-core ==2.8.3,
|
any.hspec-core ==2.9.4,
|
||||||
any.hspec-discover ==2.8.3,
|
any.hspec-discover ==2.9.4,
|
||||||
any.hspec-expectations ==0.8.2,
|
any.hspec-expectations ==0.8.2,
|
||||||
any.hspec-expectations-lifted ==0.10.0,
|
any.hspec-expectations-lifted ==0.10.0,
|
||||||
any.hspec-hedgehog ==0.0.1.2,
|
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.hspec-wai-json ==0.11.0,
|
||||||
any.http-api-data ==0.4.3,
|
any.http-api-data ==0.4.3,
|
||||||
http-api-data -use-text-show,
|
http-api-data -use-text-show,
|
||||||
any.http-client ==0.7.5,
|
any.http-client ==0.7.11,
|
||||||
http-client +network-uri,
|
http-client +network-uri,
|
||||||
any.http-client-tls ==0.3.5.3,
|
any.http-client-tls ==0.3.6.1,
|
||||||
any.http-conduit ==2.3.7.4,
|
any.http-conduit ==2.3.8,
|
||||||
http-conduit +aeson,
|
http-conduit +aeson,
|
||||||
any.http-date ==0.0.10,
|
any.http-date ==0.0.11,
|
||||||
any.http-media ==0.8.0.0,
|
any.http-media ==0.8.0.0,
|
||||||
any.http-types ==0.12.3,
|
any.http-types ==0.12.3,
|
||||||
any.http2 ==2.0.5,
|
any.http2 ==3.0.3,
|
||||||
http2 -devel,
|
http2 -devel -doc -h2spec,
|
||||||
any.hvect ==0.4.0.0,
|
any.hvect ==0.4.0.1,
|
||||||
any.immortal ==0.2.2.1,
|
any.immortal ==0.2.2.1,
|
||||||
any.indexed-profunctors ==0.1,
|
any.indexed-profunctors ==0.1.1,
|
||||||
any.indexed-traversable ==0.1.1,
|
any.indexed-traversable ==0.1.2,
|
||||||
any.insert-ordered-containers ==0.2.3.1,
|
any.indexed-traversable-instances ==0.1.1,
|
||||||
any.inspection-testing ==0.4.5.0,
|
any.insert-ordered-containers ==0.2.5.1,
|
||||||
|
any.inspection-testing ==0.4.6.0,
|
||||||
inspection-testing -more-tests -old-text-tests,
|
inspection-testing -more-tests -old-text-tests,
|
||||||
any.integer-gmp ==1.0.3.0,
|
any.integer-gmp ==1.0.3.0,
|
||||||
any.integer-logarithms ==1.0.3.1,
|
any.integer-logarithms ==1.0.3.1,
|
||||||
integer-logarithms -check-bounds +integer-gmp,
|
integer-logarithms -check-bounds +integer-gmp,
|
||||||
any.invariant ==0.5.4,
|
any.invariant ==0.5.5,
|
||||||
any.iproute ==1.7.10,
|
any.iproute ==1.7.12,
|
||||||
any.jose ==0.8.4,
|
any.jose ==0.8.5.1,
|
||||||
jose -demos,
|
jose -demos,
|
||||||
any.kan-extensions ==5.2.1,
|
any.kan-extensions ==5.2.3,
|
||||||
any.keys ==3.12.3,
|
any.keys ==3.12.3,
|
||||||
any.kriti-lang ==0.3.0,
|
any.kriti-lang ==0.3.0,
|
||||||
any.lens ==4.19.2,
|
any.lens ==5.1,
|
||||||
lens -benchmark-uniplate -dump-splices +inlining -j -old-inline-pragmas -safe +test-doctests +test-hunit +test-properties +test-templates +trustworthy,
|
lens -benchmark-uniplate -dump-splices +inlining -j +test-hunit +test-properties +test-templates +trustworthy,
|
||||||
any.lens-aeson ==1.1,
|
any.lens-aeson ==1.1.3,
|
||||||
lens-aeson +test-doctests,
|
|
||||||
any.libyaml ==0.1.2,
|
any.libyaml ==0.1.2,
|
||||||
libyaml -no-unicode -system-libyaml,
|
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.lifted-base ==0.2.3.12,
|
||||||
any.list-t ==1.0.4,
|
any.list-t ==1.0.5.1,
|
||||||
any.loch-th ==0.2.2,
|
any.logict ==0.7.0.3,
|
||||||
any.math-functions ==0.3.4.1,
|
any.megaparsec ==9.2.0,
|
||||||
math-functions +system-erf +system-expm1,
|
|
||||||
any.megaparsec ==9.0.1,
|
|
||||||
megaparsec -dev,
|
megaparsec -dev,
|
||||||
any.memory ==0.15.0,
|
any.memory ==0.16.0,
|
||||||
memory +support_basement +support_bytestring +support_deepseq +support_foundation,
|
memory +support_basement +support_bytestring +support_deepseq +support_foundation,
|
||||||
any.mime-types ==0.1.0.9,
|
any.mime-types ==0.1.0.9,
|
||||||
any.mmorph ==1.1.4,
|
any.mmorph ==1.2.0,
|
||||||
any.monad-control ==1.0.2.3,
|
any.monad-control ==1.0.3.1,
|
||||||
any.monad-logger ==0.3.36,
|
any.monad-logger ==0.3.36,
|
||||||
monad-logger +template_haskell,
|
monad-logger +template_haskell,
|
||||||
any.monad-loops ==0.4.3,
|
any.monad-loops ==0.4.3,
|
||||||
monad-loops +base4,
|
monad-loops +base4,
|
||||||
any.monad-time ==0.3.1.0,
|
any.monad-time ==0.3.1.0,
|
||||||
any.monad-validate ==1.2.0.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 ==2.2.2,
|
||||||
any.mtl-compat ==0.2.2,
|
any.mtl-compat ==0.2.2,
|
||||||
mtl-compat -two-point-one -two-point-two,
|
mtl-compat -two-point-one -two-point-two,
|
||||||
any.mustache ==2.3.1,
|
any.mustache ==2.4.0,
|
||||||
any.mwc-random ==0.14.0.0,
|
any.mysql ==0.2.1,
|
||||||
any.mysql ==0.2.0.1,
|
|
||||||
mysql -developer,
|
mysql -developer,
|
||||||
any.mysql-simple ==0.4.6,
|
any.mysql-simple ==0.4.7.1,
|
||||||
mysql-simple -developer,
|
mysql-simple -developer,
|
||||||
any.natural-transformation ==0.4,
|
any.natural-transformation ==0.4,
|
||||||
any.network ==3.1.2.5,
|
any.network ==3.1.2.7,
|
||||||
network -devel,
|
network -devel,
|
||||||
any.network-byte-order ==0.1.6,
|
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-ip ==0.3.0.3,
|
||||||
any.network-uri ==2.6.4.1,
|
any.network-uri ==2.6.4.1,
|
||||||
any.odbc ==0.2.6,
|
any.odbc ==0.2.6,
|
||||||
any.old-locale ==1.0.0.7,
|
any.old-locale ==1.0.0.7,
|
||||||
any.old-time ==1.1.0.3,
|
any.old-time ==1.1.0.3,
|
||||||
any.openapi3 ==3.1.0,
|
any.openapi3 ==3.2.1,
|
||||||
any.optics-core ==0.3.0.1,
|
any.optics-core ==0.4,
|
||||||
any.optics-extra ==0.3,
|
optics-core -explicit-generic-labels,
|
||||||
any.optics-th ==0.3.0.2,
|
any.optics-extra ==0.4,
|
||||||
any.optparse-applicative ==0.16.1.0,
|
any.optics-th ==0.4,
|
||||||
|
any.optparse-applicative ==0.17.0.0,
|
||||||
optparse-applicative +process,
|
optparse-applicative +process,
|
||||||
any.optparse-generic ==1.4.4,
|
any.optparse-generic ==1.4.7,
|
||||||
any.parallel ==3.2.2.0,
|
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,
|
any.parser-combinators ==1.3.0,
|
||||||
parser-combinators -dev,
|
parser-combinators -dev,
|
||||||
any.parsers ==0.12.10,
|
any.parsers ==0.12.10,
|
||||||
@ -272,12 +269,11 @@ constraints: any.Cabal ==3.2.0.0,
|
|||||||
pcre-light -old_base -use-pkg-config,
|
pcre-light -old_base -use-pkg-config,
|
||||||
any.pem ==0.2.4,
|
any.pem ==0.2.4,
|
||||||
any.pg-client ==0.1.0,
|
any.pg-client ==0.1.0,
|
||||||
any.placeholders ==0.1,
|
any.pointed ==5.0.3,
|
||||||
any.pointed ==5.0.2,
|
|
||||||
pointed +comonad +containers +kan-extensions +semigroupoids +semigroups +stm +tagged +transformers +unordered-containers,
|
pointed +comonad +containers +kan-extensions +semigroupoids +semigroups +stm +tagged +transformers +unordered-containers,
|
||||||
any.port-utils ==0.2.1.0,
|
any.port-utils ==0.2.1.0,
|
||||||
any.postgres-options ==0.2.0.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,
|
any.postgresql-libpq ==0.9.4.3,
|
||||||
postgresql-libpq -use-pkg-config,
|
postgresql-libpq -use-pkg-config,
|
||||||
any.postgresql-simple ==0.6.4,
|
any.postgresql-simple ==0.6.4,
|
||||||
@ -285,60 +281,60 @@ constraints: any.Cabal ==3.2.0.0,
|
|||||||
any.pretty-show ==1.10,
|
any.pretty-show ==1.10,
|
||||||
any.pretty-simple ==4.0.0.0,
|
any.pretty-simple ==4.0.0.0,
|
||||||
pretty-simple -buildexample -buildexe,
|
pretty-simple -buildexample -buildexe,
|
||||||
any.prettyprinter ==1.7.0,
|
any.prettyprinter ==1.7.1,
|
||||||
prettyprinter -buildreadme,
|
prettyprinter -buildreadme +text,
|
||||||
any.prettyprinter-ansi-terminal ==1.1.2,
|
any.prettyprinter-ansi-terminal ==1.1.3,
|
||||||
any.primitive ==0.7.1.0,
|
any.primitive ==0.7.3.0,
|
||||||
any.primitive-extras ==0.8,
|
any.primitive-extras ==0.10.1.4,
|
||||||
any.primitive-unlifted ==0.1.3.0,
|
any.primitive-unlifted ==0.1.3.1,
|
||||||
any.process ==1.6.13.2,
|
any.process ==1.6.13.2,
|
||||||
any.profunctors ==5.6.1,
|
any.profunctors ==5.6.2,
|
||||||
any.psqueues ==0.2.7.2,
|
any.psqueues ==0.2.7.3,
|
||||||
any.quickcheck-instances ==0.3.25.2,
|
any.quickcheck-instances ==0.3.27,
|
||||||
quickcheck-instances -bytestring-builder,
|
quickcheck-instances -bytestring-builder,
|
||||||
any.quickcheck-io ==0.2.0,
|
any.quickcheck-io ==0.2.0,
|
||||||
any.random ==1.1,
|
any.random ==1.2.1,
|
||||||
any.reflection ==2.1.6,
|
any.reflection ==2.1.6,
|
||||||
reflection -slow +template-haskell,
|
reflection -slow +template-haskell,
|
||||||
any.regex-base ==0.94.0.0,
|
any.regex-base ==0.94.0.2,
|
||||||
any.regex-tdfa ==1.3.1.0,
|
any.regex-tdfa ==1.3.1.1,
|
||||||
regex-tdfa -force-o2,
|
regex-tdfa -force-o2,
|
||||||
any.reroute ==0.6.0.0,
|
any.reroute ==0.6.0.0,
|
||||||
any.resource-pool ==0.2.3.2,
|
any.resource-pool ==0.2.3.2,
|
||||||
resource-pool -developer,
|
resource-pool -developer,
|
||||||
any.resourcet ==1.2.4.2,
|
any.resourcet ==1.2.4.3,
|
||||||
any.retry ==0.8.1.2,
|
any.retry ==0.9.1.0,
|
||||||
retry -lib-werror,
|
retry -lib-werror,
|
||||||
any.rts ==1.0.1,
|
any.rts ==1.0.1,
|
||||||
any.safe ==0.3.19,
|
any.safe ==0.3.19,
|
||||||
any.safe-exceptions ==0.1.7.2,
|
any.safe-exceptions ==0.1.7.2,
|
||||||
any.scanner ==0.3.1,
|
any.scanner ==0.3.1,
|
||||||
any.scientific ==0.3.6.2,
|
any.scientific ==0.3.7.0,
|
||||||
scientific -bytestring-builder -integer-simple,
|
scientific -bytestring-builder -integer-simple,
|
||||||
any.semialign ==1.1.0.1,
|
any.semialign ==1.2.0.1,
|
||||||
semialign +semigroupoids,
|
semialign +semigroupoids,
|
||||||
any.semigroupoids ==5.3.5,
|
any.semigroupoids ==5.3.7,
|
||||||
semigroupoids +comonad +containers +contravariant +distributive +tagged +unordered-containers,
|
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,
|
semigroups +binary +bytestring -bytestring-builder +containers +deepseq +hashable +tagged +template-haskell +text +transformers +unordered-containers,
|
||||||
any.semver ==0.4.0.1,
|
any.semver ==0.4.0.1,
|
||||||
any.setenv ==0.1.1.3,
|
any.setenv ==0.1.1.3,
|
||||||
any.shakespeare ==2.0.25,
|
any.shakespeare ==2.0.25.1,
|
||||||
shakespeare -test_coffee -test_export -test_roy,
|
shakespeare -test_coffee -test_export -test_roy,
|
||||||
any.simple-sendfile ==0.2.30,
|
any.simple-sendfile ==0.2.30,
|
||||||
simple-sendfile +allow-bsd,
|
simple-sendfile +allow-bsd,
|
||||||
any.socks ==0.6.1,
|
any.socks ==0.6.1,
|
||||||
any.some ==1.0.1,
|
any.some ==1.0.3,
|
||||||
some +newtype-unsafe,
|
some +newtype-unsafe,
|
||||||
any.sop-core ==0.5.0.1,
|
any.sop-core ==0.5.0.2,
|
||||||
any.split ==0.2.3.4,
|
any.split ==0.2.3.4,
|
||||||
any.splitmix ==0.1.0.3,
|
any.splitmix ==0.1.0.4,
|
||||||
splitmix -optimised-mixer,
|
splitmix -optimised-mixer,
|
||||||
any.stm ==2.5.0.1,
|
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-containers ==1.2,
|
||||||
any.stm-hamt ==1.2.0.4,
|
any.stm-hamt ==1.2.0.7,
|
||||||
any.streaming-commons ==0.2.2.1,
|
any.streaming-commons ==0.2.2.4,
|
||||||
streaming-commons -use-bytestring-builder,
|
streaming-commons -use-bytestring-builder,
|
||||||
any.strict ==0.4.0.1,
|
any.strict ==0.4.0.1,
|
||||||
strict +assoc,
|
strict +assoc,
|
||||||
@ -347,30 +343,30 @@ constraints: any.Cabal ==3.2.0.0,
|
|||||||
any.system-filepath ==0.4.14,
|
any.system-filepath ==0.4.14,
|
||||||
any.tagged ==0.8.6.1,
|
any.tagged ==0.8.6.1,
|
||||||
tagged +deepseq +transformers,
|
tagged +deepseq +transformers,
|
||||||
any.tasty ==1.4.1,
|
any.tasty ==1.4.2.1,
|
||||||
tasty +clock +unix,
|
tasty +clock +unix,
|
||||||
any.tasty-golden ==2.3.4,
|
any.tasty-golden ==2.3.5,
|
||||||
tasty-golden -build-example,
|
tasty-golden -build-example,
|
||||||
any.template-haskell ==2.16.0.0,
|
any.template-haskell ==2.16.0.0,
|
||||||
any.temporary ==1.3,
|
any.temporary ==1.3,
|
||||||
any.terminal-size ==0.3.2.1,
|
any.terminal-size ==0.3.2.1,
|
||||||
any.terminfo ==0.4.1.4,
|
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,
|
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-conversions ==0.3.1,
|
||||||
any.text-latin1 ==0.3.1,
|
any.text-latin1 ==0.3.1,
|
||||||
any.text-printer ==0.5.0.1,
|
any.text-printer ==0.5.0.2,
|
||||||
any.text-short ==0.1.3,
|
any.text-short ==0.1.5,
|
||||||
text-short -asserts,
|
text-short -asserts,
|
||||||
any.tf-random ==0.5,
|
any.tf-random ==0.5,
|
||||||
any.th-abstraction ==0.4.2.0,
|
any.th-abstraction ==0.4.3.0,
|
||||||
any.th-compat ==0.1.1,
|
any.th-compat ==0.1.3,
|
||||||
any.th-expand-syns ==0.4.8.0,
|
any.th-expand-syns ==0.4.9.0,
|
||||||
any.th-lift ==0.8.2,
|
any.th-lift ==0.8.2,
|
||||||
any.th-lift-instances ==0.1.18,
|
any.th-lift-instances ==0.1.19,
|
||||||
any.th-orphans ==0.13.11,
|
any.th-orphans ==0.13.12,
|
||||||
any.th-reify-many ==0.1.9,
|
any.th-reify-many ==0.1.10,
|
||||||
any.these ==1.1.1.1,
|
any.these ==1.1.1.1,
|
||||||
these +assoc,
|
these +assoc,
|
||||||
any.time ==1.9.3,
|
any.time ==1.9.3,
|
||||||
@ -379,24 +375,25 @@ constraints: any.Cabal ==3.2.0.0,
|
|||||||
any.time-locale-compat ==0.1.1.5,
|
any.time-locale-compat ==0.1.1.5,
|
||||||
time-locale-compat -old-locale,
|
time-locale-compat -old-locale,
|
||||||
any.time-manager ==0.0.0,
|
any.time-manager ==0.0.0,
|
||||||
any.tls ==1.5.5,
|
any.tls ==1.5.7,
|
||||||
tls +compat -hans +network,
|
tls +compat -hans +network,
|
||||||
any.tmp-postgres ==1.34.1.0,
|
any.tmp-postgres ==1.34.1.0,
|
||||||
any.transformers ==0.5.6.2,
|
any.transformers ==0.5.6.2,
|
||||||
any.transformers-base ==0.4.5.2,
|
any.transformers-base ==0.4.6,
|
||||||
transformers-base +orphaninstances,
|
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,
|
transformers-compat -five +five-three -four +generic-deriving +mtl -three -two,
|
||||||
any.type-equality ==1,
|
any.type-equality ==1,
|
||||||
any.type-hint ==0.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.unbounded-delays ==0.1.1.1,
|
||||||
any.unix ==2.7.2.2,
|
any.unix ==2.7.2.2,
|
||||||
any.unix-compat ==0.5.3,
|
any.unix-compat ==0.5.4,
|
||||||
unix-compat -old-time,
|
unix-compat -old-time,
|
||||||
any.unix-time ==0.4.7,
|
any.unix-time ==0.4.7,
|
||||||
|
any.unliftio ==0.2.21.0,
|
||||||
any.unliftio-core ==0.2.0.1,
|
any.unliftio-core ==0.2.0.1,
|
||||||
any.unordered-containers ==0.2.13.0,
|
any.unordered-containers ==0.2.15.0,
|
||||||
unordered-containers -debug,
|
unordered-containers -debug,
|
||||||
any.uri-bytestring ==0.3.3.1,
|
any.uri-bytestring ==0.3.3.1,
|
||||||
uri-bytestring -lib-werror,
|
uri-bytestring -lib-werror,
|
||||||
@ -404,12 +401,12 @@ constraints: any.Cabal ==3.2.0.0,
|
|||||||
uri-encode +network-uri -tools,
|
uri-encode +network-uri -tools,
|
||||||
any.url ==2.1.3,
|
any.url ==2.1.3,
|
||||||
any.utf8-string ==1.0.2,
|
any.utf8-string ==1.0.2,
|
||||||
any.uuid ==1.3.13,
|
any.uuid ==1.3.15,
|
||||||
any.uuid-types ==1.0.3,
|
any.uuid-types ==1.0.5,
|
||||||
any.validation ==1.1,
|
any.validation ==1.1.2,
|
||||||
any.vault ==0.3.1.4,
|
any.vault ==0.3.1.5,
|
||||||
vault +useghc,
|
vault +useghc,
|
||||||
any.vector ==0.12.2.0,
|
any.vector ==0.12.3.1,
|
||||||
vector +boundschecks -internalchecks -unsafechecks -wall,
|
vector +boundschecks -internalchecks -unsafechecks -wall,
|
||||||
any.vector-algorithms ==0.8.0.4,
|
any.vector-algorithms ==0.8.0.4,
|
||||||
vector-algorithms +bench +boundschecks -internalchecks -llvm +properties -unsafechecks,
|
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 ==3.2.3,
|
||||||
any.wai-app-static ==3.1.7.2,
|
any.wai-app-static ==3.1.7.2,
|
||||||
wai-app-static -print,
|
wai-app-static -print,
|
||||||
any.wai-extra ==3.1.6,
|
any.wai-extra ==3.1.8,
|
||||||
wai-extra -build-example,
|
wai-extra -build-example,
|
||||||
any.wai-logger ==2.3.6,
|
any.wai-logger ==2.4.0,
|
||||||
any.warp ==3.3.14,
|
any.warp ==3.3.19,
|
||||||
warp +allow-sendfilefd -network-bytestring -warp-debug,
|
warp +allow-sendfilefd -network-bytestring -warp-debug,
|
||||||
any.wcwidth ==0.0.2,
|
any.wcwidth ==0.0.2,
|
||||||
wcwidth -cli +split-base,
|
wcwidth -cli +split-base,
|
||||||
any.websockets ==0.12.7.2,
|
any.websockets ==0.12.7.3,
|
||||||
websockets -example,
|
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.wl-pprint-annotated ==0.1.0.1,
|
||||||
any.word8 ==0.1.3,
|
any.word8 ==0.1.3,
|
||||||
any.wreq ==0.5.3.3,
|
any.wreq ==0.5.3.3,
|
||||||
wreq -aws -developer +doctest -httpbin,
|
wreq -aws -developer +doctest -httpbin,
|
||||||
any.x509 ==1.7.5,
|
any.x509 ==1.7.6,
|
||||||
any.x509-store ==1.6.7,
|
any.x509-store ==1.6.9,
|
||||||
any.x509-system ==1.6.6,
|
any.x509-system ==1.6.7,
|
||||||
any.x509-validation ==1.6.11,
|
any.x509-validation ==1.6.12,
|
||||||
any.yaml ==0.11.5.0,
|
any.yaml ==0.11.7.0,
|
||||||
yaml +no-examples +no-exe,
|
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
|
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
|
||||||
|
@ -7,7 +7,6 @@ module Data.HashMap.Strict.Extended
|
|||||||
groupOnNE,
|
groupOnNE,
|
||||||
differenceOn,
|
differenceOn,
|
||||||
lpadZip,
|
lpadZip,
|
||||||
mapKeys,
|
|
||||||
unionsWith,
|
unionsWith,
|
||||||
isInverseOf,
|
isInverseOf,
|
||||||
)
|
)
|
||||||
@ -15,11 +14,11 @@ where
|
|||||||
|
|
||||||
import Data.Align qualified as A
|
import Data.Align qualified as A
|
||||||
import Data.Foldable qualified as F
|
import Data.Foldable qualified as F
|
||||||
import Data.Function
|
import Data.Function (on)
|
||||||
import Data.HashMap.Strict as M
|
import Data.HashMap.Strict as M
|
||||||
import Data.Hashable
|
import Data.Hashable (Hashable)
|
||||||
import Data.List.NonEmpty (NonEmpty (..))
|
import Data.List.NonEmpty (NonEmpty (..))
|
||||||
import Data.These
|
import Data.These (These (That, These, This))
|
||||||
import Prelude
|
import Prelude
|
||||||
|
|
||||||
catMaybes :: HashMap k (Maybe v) -> HashMap k v
|
catMaybes :: HashMap k (Maybe v) -> HashMap k v
|
||||||
@ -65,20 +64,6 @@ lpadZip left =
|
|||||||
That b -> Just (Nothing, b)
|
That b -> Just (Nothing, b)
|
||||||
These a b -> Just (Just a, 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:
|
-- | The union of a list of maps, with a combining operation:
|
||||||
-- (@'unionsWith' f == 'Prelude.foldl' ('unionWith' f) 'empty'@).
|
-- (@'unionsWith' f == 'Prelude.foldl' ('unionWith' f) 'empty'@).
|
||||||
--
|
--
|
||||||
|
@ -10,7 +10,6 @@ import Data.Aeson.Casing qualified as J
|
|||||||
import Data.Aeson.Extended
|
import Data.Aeson.Extended
|
||||||
import Data.Aeson.TH qualified as J
|
import Data.Aeson.TH qualified as J
|
||||||
import Data.Aeson.Types
|
import Data.Aeson.Types
|
||||||
import Data.HashSet.InsOrd (InsOrdHashSet, toHashSet)
|
|
||||||
import Data.Pool
|
import Data.Pool
|
||||||
import Data.Text.Extended (ToTxt (..))
|
import Data.Text.Extended (ToTxt (..))
|
||||||
import Database.MySQL.Base (Connection)
|
import Database.MySQL.Base (Connection)
|
||||||
@ -21,10 +20,6 @@ import Hasura.Prelude
|
|||||||
import Language.Haskell.TH
|
import Language.Haskell.TH
|
||||||
import Language.Haskell.TH.Syntax
|
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
|
$( fmap concat $ for
|
||||||
[''Aliased]
|
[''Aliased]
|
||||||
\name ->
|
\name ->
|
||||||
|
@ -5,15 +5,11 @@
|
|||||||
module Hasura.Base.Instances () where
|
module Hasura.Base.Instances () where
|
||||||
|
|
||||||
import Data.Aeson qualified as J
|
import Data.Aeson qualified as J
|
||||||
import Data.Functor.Product
|
import Data.Functor.Product (Product (Pair))
|
||||||
import Data.GADT.Compare
|
import Data.GADT.Compare (GCompare (gcompare), GOrdering (GEQ, GGT, GLT))
|
||||||
import Data.HashMap.Strict qualified as M
|
import Data.HashMap.Strict qualified as M
|
||||||
import Data.HashSet qualified as S
|
import Data.HashSet qualified as S
|
||||||
import Data.Hashable
|
import Data.Text qualified as T
|
||||||
import Data.Text
|
|
||||||
import Data.Time.Calendar
|
|
||||||
import Data.Time.Clock
|
|
||||||
import Data.Time.LocalTime
|
|
||||||
import Data.URL.Template qualified as UT
|
import Data.URL.Template qualified as UT
|
||||||
import Database.PG.Query qualified as Q
|
import Database.PG.Query qualified as Q
|
||||||
import Hasura.Prelude
|
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 qualified as TDFA
|
||||||
import Text.Regex.TDFA.Pattern 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
|
-- Deepseq
|
||||||
|
|
||||||
@ -129,5 +113,5 @@ instance Q.FromCol C.CronSchedule where
|
|||||||
Left err -> Left err
|
Left err -> Left err
|
||||||
Right dbCron ->
|
Right dbCron ->
|
||||||
case C.parseCronSchedule dbCron of
|
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
|
Right cron -> Right cron
|
||||||
|
@ -6,7 +6,6 @@ where
|
|||||||
import Data.Aeson qualified as J
|
import Data.Aeson qualified as J
|
||||||
import Data.Aeson.Ordered qualified as JO
|
import Data.Aeson.Ordered qualified as JO
|
||||||
import Data.Environment qualified as Env
|
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.Extended qualified as Map
|
||||||
import Data.HashMap.Strict.InsOrd qualified as OMap
|
import Data.HashMap.Strict.InsOrd qualified as OMap
|
||||||
import Data.HashSet qualified as HS
|
import Data.HashSet qualified as HS
|
||||||
|
@ -34,7 +34,6 @@ module Hasura.Prelude
|
|||||||
|
|
||||||
-- * Map-related utilities
|
-- * Map-related utilities
|
||||||
mapFromL,
|
mapFromL,
|
||||||
mapKeys,
|
|
||||||
oMapFromL,
|
oMapFromL,
|
||||||
|
|
||||||
-- * Measuring and working with moments and durations
|
-- * Measuring and working with moments and durations
|
||||||
@ -88,13 +87,13 @@ import Data.Foldable as M
|
|||||||
import Data.Function as M (on, (&))
|
import Data.Function as M (on, (&))
|
||||||
import Data.Functor as M (($>), (<&>))
|
import Data.Functor as M (($>), (<&>))
|
||||||
import Data.Functor.Const as M (Const)
|
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 qualified as Map
|
||||||
import Data.HashMap.Strict.InsOrd as M (InsOrdHashMap)
|
import Data.HashMap.Strict.InsOrd as M (InsOrdHashMap)
|
||||||
import Data.HashMap.Strict.InsOrd qualified as OMap
|
import Data.HashMap.Strict.InsOrd qualified as OMap
|
||||||
import Data.HashSet as M (HashSet)
|
import Data.HashSet as M (HashSet)
|
||||||
|
import Data.Hashable (hashWithSalt)
|
||||||
import Data.Hashable as M (Hashable)
|
import Data.Hashable as M (Hashable)
|
||||||
import Data.Hashable qualified as H
|
|
||||||
import Data.List as M
|
import Data.List as M
|
||||||
( find,
|
( find,
|
||||||
findIndex,
|
findIndex,
|
||||||
@ -215,13 +214,6 @@ findWithIndex p l = do
|
|||||||
mapFromL :: (Eq k, Hashable k) => (a -> k) -> [a] -> Map.HashMap k a
|
mapFromL :: (Eq k, Hashable k) => (a -> k) -> [a] -> Map.HashMap k a
|
||||||
mapFromL f = Map.fromList . map (\v -> (f v, v))
|
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 :: (Eq k, Hashable k) => (a -> k) -> [a] -> InsOrdHashMap k a
|
||||||
oMapFromL f = OMap.fromList . map (\v -> (f v, v))
|
oMapFromL f = OMap.fromList . map (\v -> (f v, v))
|
||||||
|
|
||||||
@ -280,7 +272,7 @@ hasuraJSON :: J.Options
|
|||||||
hasuraJSON = J.aesonPrefix J.snakeCase
|
hasuraJSON = J.aesonPrefix J.snakeCase
|
||||||
|
|
||||||
instance (Hashable a) => Hashable (Seq a) where
|
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
|
-- | Given a structure with elements whose type is a 'Monoid', combine them via
|
||||||
-- the monoid's @('<>')@ operator.
|
-- the monoid's @('<>')@ operator.
|
||||||
|
Loading…
Reference in New Issue
Block a user