polysemy-research / polysemy

:gemini: higher-order, no-boilerplate monads
BSD 3-Clause "New" or "Revised" License
1.04k stars 72 forks source link

polysemy-plugin GHC panic (using 2 Error effects) #452

Closed ruby0b closed 2 years ago

ruby0b commented 2 years ago

Adding a second Error effect causes a panic under weird conditions (see the comment in the source for more info):

https://github.com/ruby0b/polysemy-panic-example/blob/main/src/PanicModule.hs

[1 of 2] Compiling PanicModule
ghc: panic! (the 'impossible' happened)
  (GHC version 8.10.7:
        src/Polysemy/Plugin/Fundep.hs:285:11-41: Non-exhaustive patterns in Just cls

Please report this as a GHC bug:  https://www.haskell.org/ghc/reportabug

The panicked line in question: https://github.com/polysemy-research/polysemy/blob/2404b97e1ee2f047fb02ab6cf1aec7b7a6316787/polysemy-plugin/src/Polysemy/Plugin/Fundep.hs#L285

I already tried:

Direct dependencies (output of cabal-plan): ``` base-4.14.3.0 calamity-0.6.0.0 calamity-commands-0.4.0.0 di-1.3 di-polysemy-0.2.0.0 optics-0.4.2 polysemy-1.7.1.0 polysemy-plugin-0.4.3.0 string-interpolate-0.3.1.2 ```
Full dependency tree (output of cabal-plan): ``` happy-1.20.0 [happy-1.20.0:exe:"happy"] ├─ array-0.5.4.0 │ └─ base-4.14.3.0 │ ├─ ghc-prim-0.6.1 │ │ └─ rts-1.0.1 │ ├─ integer-gmp-1.0.3.0 │ │ └─ ghc-prim-0.6.1 ┄┄ │ └─ rts-1.0.1 ┄┄ ├─ base-4.14.3.0 ┄┄ ├─ containers-0.6.5.1 │ ├─ array-0.5.4.0 ┄┄ │ ├─ base-4.14.3.0 ┄┄ │ └─ deepseq-1.4.4.0 │ ├─ array-0.5.4.0 ┄┄ │ └─ base-4.14.3.0 ┄┄ └─ mtl-2.2.2 ├─ base-4.14.3.0 ┄┄ └─ transformers-0.5.6.2 └─ base-4.14.3.0 ┄┄ hsc2hs-0.68.8 [hsc2hs-0.68.8:exe:"hsc2hs"] ├─ base-4.14.3.0 ┄┄ ├─ containers-0.6.5.1 ┄┄ ├─ directory-1.3.6.0 │ ├─ base-4.14.3.0 ┄┄ │ ├─ filepath-1.4.2.1 │ │ └─ base-4.14.3.0 ┄┄ │ ├─ time-1.9.3 │ │ ├─ base-4.14.3.0 ┄┄ │ │ └─ deepseq-1.4.4.0 ┄┄ │ └─ unix-2.7.2.2 │ ├─ base-4.14.3.0 ┄┄ │ ├─ bytestring-0.10.12.0 │ │ ├─ base-4.14.3.0 ┄┄ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ ├─ ghc-prim-0.6.1 ┄┄ │ │ └─ integer-gmp-1.0.3.0 ┄┄ │ └─ time-1.9.3 ┄┄ ├─ filepath-1.4.2.1 ┄┄ └─ process-1.6.13.2 ├─ base-4.14.3.0 ┄┄ ├─ deepseq-1.4.4.0 ┄┄ ├─ directory-1.3.6.0 ┄┄ ├─ filepath-1.4.2.1 ┄┄ └─ unix-2.7.2.2 ┄┄ polysemy-panic-example-0.1.0.0 [polysemy-panic-example-0.1.0.0:exe:"polysemy-panic-example"] ├─ base-4.14.3.0 ┄┄ ├─ calamity-0.6.0.0 │ ├─ PyF-0.10.2.0 │ │ ├─ base-4.14.3.0 ┄┄ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ ├─ ghc-8.10.7 │ │ │ ├─ array-0.5.4.0 ┄┄ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ binary-0.8.8.0 │ │ │ │ ├─ array-0.5.4.0 ┄┄ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ │ └─ containers-0.6.5.1 ┄┄ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ ├─ directory-1.3.6.0 ┄┄ │ │ │ ├─ filepath-1.4.2.1 ┄┄ │ │ │ ├─ ghc-boot-8.10.7 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ binary-0.8.8.0 ┄┄ │ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ │ ├─ directory-1.3.6.0 ┄┄ │ │ │ │ ├─ filepath-1.4.2.1 ┄┄ │ │ │ │ └─ ghc-boot-th-8.10.7 │ │ │ │ └─ base-4.14.3.0 ┄┄ │ │ │ ├─ ghc-boot-th-8.10.7 ┄┄ │ │ │ ├─ ghc-heap-8.10.7 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ ghc-prim-0.6.1 ┄┄ │ │ │ │ └─ rts-1.0.1 ┄┄ │ │ │ ├─ ghci-8.10.7 │ │ │ │ ├─ array-0.5.4.0 ┄┄ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ binary-0.8.8.0 ┄┄ │ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ │ ├─ filepath-1.4.2.1 ┄┄ │ │ │ │ ├─ ghc-boot-8.10.7 ┄┄ │ │ │ │ ├─ ghc-boot-th-8.10.7 ┄┄ │ │ │ │ ├─ ghc-heap-8.10.7 ┄┄ │ │ │ │ ├─ rts-1.0.1 ┄┄ │ │ │ │ ├─ template-haskell-2.16.0.0 │ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ │ ├─ ghc-boot-th-8.10.7 ┄┄ │ │ │ │ │ ├─ ghc-prim-0.6.1 ┄┄ │ │ │ │ │ └─ pretty-1.1.3.6 │ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ │ │ └─ ghc-prim-0.6.1 ┄┄ │ │ │ │ ├─ transformers-0.5.6.2 ┄┄ │ │ │ │ └─ unix-2.7.2.2 ┄┄ │ │ │ ├─ hpc-0.6.1.0 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ │ ├─ directory-1.3.6.0 ┄┄ │ │ │ │ ├─ filepath-1.4.2.1 ┄┄ │ │ │ │ └─ time-1.9.3 ┄┄ │ │ │ ├─ integer-gmp-1.0.3.0 ┄┄ │ │ │ ├─ process-1.6.13.2 ┄┄ │ │ │ ├─ template-haskell-2.16.0.0 ┄┄ │ │ │ ├─ terminfo-0.4.1.4 │ │ │ │ └─ base-4.14.3.0 ┄┄ │ │ │ ├─ time-1.9.3 ┄┄ │ │ │ ├─ transformers-0.5.6.2 ┄┄ │ │ │ └─ unix-2.7.2.2 ┄┄ │ │ ├─ ghc-boot-8.10.7 ┄┄ │ │ ├─ mtl-2.2.2 ┄┄ │ │ ├─ parsec-3.1.14.0 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ ├─ mtl-2.2.2 ┄┄ │ │ │ └─ text-1.2.4.1 │ │ │ ├─ array-0.5.4.0 ┄┄ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ binary-0.8.8.0 ┄┄ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ ├─ ghc-prim-0.6.1 ┄┄ │ │ │ ├─ integer-gmp-1.0.3.0 ┄┄ │ │ │ └─ template-haskell-2.16.0.0 ┄┄ │ │ ├─ template-haskell-2.16.0.0 ┄┄ │ │ ├─ text-1.2.4.1 ┄┄ │ │ └─ time-1.9.3 ┄┄ │ ├─ aeson-2.0.3.0 │ │ ├─ OneTuple-0.3.1 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ base-orphans-0.8.6 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ └─ ghc-prim-0.6.1 ┄┄ │ │ │ ├─ hashable-1.4.0.2 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ base-orphans-0.8.6 ┄┄ │ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ │ ├─ ghc-prim-0.6.1 ┄┄ │ │ │ │ ├─ integer-gmp-1.0.3.0 ┄┄ │ │ │ │ └─ text-1.2.4.1 ┄┄ │ │ │ └─ template-haskell-2.16.0.0 ┄┄ │ │ ├─ QuickCheck-2.14.2 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ ├─ random-1.2.1.1 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ │ ├─ mtl-2.2.2 ┄┄ │ │ │ │ └─ splitmix-0.1.0.4 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ └─ deepseq-1.4.4.0 ┄┄ │ │ │ ├─ splitmix-0.1.0.4 ┄┄ │ │ │ ├─ template-haskell-2.16.0.0 ┄┄ │ │ │ └─ transformers-0.5.6.2 ┄┄ │ │ ├─ attoparsec-0.14.4 │ │ │ ├─ array-0.5.4.0 ┄┄ │ │ │ ├─ attoparsec-0.14.4 │ │ │ │ [attoparsec-0.14.4:lib:"attoparsec-internal"] │ │ │ │ ├─ array-0.5.4.0 ┄┄ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ │ └─ text-1.2.4.1 ┄┄ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ ├─ ghc-prim-0.6.1 ┄┄ │ │ │ ├─ scientific-0.3.7.0 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ binary-0.8.8.0 ┄┄ │ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ │ ├─ hashable-1.4.0.2 ┄┄ │ │ │ │ ├─ integer-gmp-1.0.3.0 ┄┄ │ │ │ │ ├─ integer-logarithms-1.0.3.1 │ │ │ │ │ ├─ array-0.5.4.0 ┄┄ │ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ │ ├─ ghc-prim-0.6.1 ┄┄ │ │ │ │ │ └─ integer-gmp-1.0.3.0 ┄┄ │ │ │ │ ├─ primitive-0.7.4.0 │ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ │ │ ├─ template-haskell-2.16.0.0 ┄┄ │ │ │ │ │ └─ transformers-0.5.6.2 ┄┄ │ │ │ │ ├─ template-haskell-2.16.0.0 ┄┄ │ │ │ │ └─ text-1.2.4.1 ┄┄ │ │ │ ├─ text-1.2.4.1 ┄┄ │ │ │ └─ transformers-0.5.6.2 ┄┄ │ │ ├─ base-4.14.3.0 ┄┄ │ │ ├─ base-compat-batteries-0.12.1 │ │ │ ├─ OneTuple-0.3.1 ┄┄ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ base-compat-0.12.1 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ ghc-prim-0.6.1 ┄┄ │ │ │ │ └─ unix-2.7.2.2 ┄┄ │ │ │ └─ ghc-prim-0.6.1 ┄┄ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ ├─ data-fix-0.3.2 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ └─ hashable-1.4.0.2 ┄┄ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ ├─ dlist-1.0 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ └─ deepseq-1.4.4.0 ┄┄ │ │ ├─ ghc-prim-0.6.1 ┄┄ │ │ ├─ hashable-1.4.0.2 ┄┄ │ │ ├─ indexed-traversable-0.1.2 │ │ │ ├─ array-0.5.4.0 ┄┄ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ └─ transformers-0.5.6.2 ┄┄ │ │ ├─ primitive-0.7.4.0 ┄┄ │ │ ├─ scientific-0.3.7.0 ┄┄ │ │ ├─ semialign-1.2.0.1 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ ├─ hashable-1.4.0.2 ┄┄ │ │ │ ├─ indexed-traversable-0.1.2 ┄┄ │ │ │ ├─ indexed-traversable-instances-0.1.1 │ │ │ │ ├─ OneTuple-0.3.1 ┄┄ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ indexed-traversable-0.1.2 ┄┄ │ │ │ │ ├─ tagged-0.8.6.1 │ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ │ │ ├─ template-haskell-2.16.0.0 ┄┄ │ │ │ │ │ └─ transformers-0.5.6.2 ┄┄ │ │ │ │ ├─ unordered-containers-0.2.19.1 │ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ │ │ ├─ hashable-1.4.0.2 ┄┄ │ │ │ │ │ └─ template-haskell-2.16.0.0 ┄┄ │ │ │ │ └─ vector-0.12.3.1 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ │ ├─ ghc-prim-0.6.1 ┄┄ │ │ │ │ └─ primitive-0.7.4.0 ┄┄ │ │ │ ├─ semigroupoids-5.3.7 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ base-orphans-0.8.6 ┄┄ │ │ │ │ ├─ bifunctors-5.5.12 │ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ │ ├─ base-orphans-0.8.6 ┄┄ │ │ │ │ │ ├─ comonad-5.0.8 │ │ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ │ │ │ ├─ distributive-0.6.2.1 │ │ │ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ │ │ │ ├─ base-orphans-0.8.6 ┄┄ │ │ │ │ │ │ │ ├─ tagged-0.8.6.1 ┄┄ │ │ │ │ │ │ │ └─ transformers-0.5.6.2 ┄┄ │ │ │ │ │ │ ├─ indexed-traversable-0.1.2 ┄┄ │ │ │ │ │ │ ├─ tagged-0.8.6.1 ┄┄ │ │ │ │ │ │ ├─ transformers-0.5.6.2 ┄┄ │ │ │ │ │ │ └─ transformers-compat-0.7.2 │ │ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ │ │ ├─ ghc-prim-0.6.1 ┄┄ │ │ │ │ │ │ └─ transformers-0.5.6.2 ┄┄ │ │ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ │ │ ├─ tagged-0.8.6.1 ┄┄ │ │ │ │ │ ├─ template-haskell-2.16.0.0 ┄┄ │ │ │ │ │ ├─ th-abstraction-0.4.3.0 │ │ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ │ │ │ ├─ ghc-prim-0.6.1 ┄┄ │ │ │ │ │ │ └─ template-haskell-2.16.0.0 ┄┄ │ │ │ │ │ └─ transformers-0.5.6.2 ┄┄ │ │ │ │ ├─ comonad-5.0.8 ┄┄ │ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ │ ├─ contravariant-1.5.5 │ │ │ │ │ ├─ StateVar-1.2.2 │ │ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ │ │ ├─ stm-2.5.0.1 │ │ │ │ │ │ │ ├─ array-0.5.4.0 ┄┄ │ │ │ │ │ │ │ └─ base-4.14.3.0 ┄┄ │ │ │ │ │ │ └─ transformers-0.5.6.2 ┄┄ │ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ │ └─ transformers-0.5.6.2 ┄┄ │ │ │ │ ├─ distributive-0.6.2.1 ┄┄ │ │ │ │ ├─ hashable-1.4.0.2 ┄┄ │ │ │ │ ├─ tagged-0.8.6.1 ┄┄ │ │ │ │ ├─ template-haskell-2.16.0.0 ┄┄ │ │ │ │ ├─ transformers-0.5.6.2 ┄┄ │ │ │ │ ├─ transformers-compat-0.7.2 ┄┄ │ │ │ │ └─ unordered-containers-0.2.19.1 ┄┄ │ │ │ ├─ tagged-0.8.6.1 ┄┄ │ │ │ ├─ these-1.1.1.1 │ │ │ │ ├─ assoc-1.0.2 │ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ │ ├─ bifunctors-5.5.12 ┄┄ │ │ │ │ │ └─ tagged-0.8.6.1 ┄┄ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ binary-0.8.8.0 ┄┄ │ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ │ └─ hashable-1.4.0.2 ┄┄ │ │ │ ├─ transformers-0.5.6.2 ┄┄ │ │ │ ├─ unordered-containers-0.2.19.1 ┄┄ │ │ │ └─ vector-0.12.3.1 ┄┄ │ │ ├─ strict-0.4.0.1 │ │ │ ├─ assoc-1.0.2 ┄┄ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ binary-0.8.8.0 ┄┄ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ ├─ ghc-prim-0.6.1 ┄┄ │ │ │ ├─ hashable-1.4.0.2 ┄┄ │ │ │ ├─ text-1.2.4.1 ┄┄ │ │ │ ├─ these-1.1.1.1 ┄┄ │ │ │ └─ transformers-0.5.6.2 ┄┄ │ │ ├─ tagged-0.8.6.1 ┄┄ │ │ ├─ template-haskell-2.16.0.0 ┄┄ │ │ ├─ text-1.2.4.1 ┄┄ │ │ ├─ text-short-0.1.5 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ binary-0.8.8.0 ┄┄ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ ├─ ghc-prim-0.6.1 ┄┄ │ │ │ ├─ hashable-1.4.0.2 ┄┄ │ │ │ ├─ template-haskell-2.16.0.0 ┄┄ │ │ │ └─ text-1.2.4.1 ┄┄ │ │ ├─ th-abstraction-0.4.3.0 ┄┄ │ │ ├─ these-1.1.1.1 ┄┄ │ │ ├─ time-1.9.3 ┄┄ │ │ ├─ time-compat-1.9.6.1 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ base-orphans-0.8.6 ┄┄ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ ├─ hashable-1.4.0.2 ┄┄ │ │ │ └─ time-1.9.3 ┄┄ │ │ ├─ unordered-containers-0.2.19.1 ┄┄ │ │ ├─ uuid-types-1.0.5 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ binary-0.8.8.0 ┄┄ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ ├─ hashable-1.4.0.2 ┄┄ │ │ │ ├─ random-1.2.1.1 ┄┄ │ │ │ ├─ template-haskell-2.16.0.0 ┄┄ │ │ │ └─ text-1.2.4.1 ┄┄ │ │ ├─ vector-0.12.3.1 ┄┄ │ │ └─ witherable-0.4.2 │ │ ├─ base-4.14.3.0 ┄┄ │ │ ├─ base-orphans-0.8.6 ┄┄ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ ├─ hashable-1.4.0.2 ┄┄ │ │ ├─ indexed-traversable-0.1.2 ┄┄ │ │ ├─ indexed-traversable-instances-0.1.1 ┄┄ │ │ ├─ transformers-0.5.6.2 ┄┄ │ │ ├─ unordered-containers-0.2.19.1 ┄┄ │ │ └─ vector-0.12.3.1 ┄┄ │ ├─ aeson-optics-1.2 │ │ ├─ aeson-2.0.3.0 ┄┄ │ │ ├─ attoparsec-0.14.4 ┄┄ │ │ ├─ base-4.14.3.0 ┄┄ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ ├─ optics-core-0.4.1 │ │ │ ├─ array-0.5.4.0 ┄┄ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ ├─ indexed-profunctors-0.1.1 │ │ │ │ └─ base-4.14.3.0 ┄┄ │ │ │ ├─ indexed-traversable-0.1.2 ┄┄ │ │ │ └─ transformers-0.5.6.2 ┄┄ │ │ ├─ optics-extra-0.4.2.1 │ │ │ ├─ array-0.5.4.0 ┄┄ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ ├─ hashable-1.4.0.2 ┄┄ │ │ │ ├─ indexed-profunctors-0.1.1 ┄┄ │ │ │ ├─ indexed-traversable-instances-0.1.1 ┄┄ │ │ │ ├─ mtl-2.2.2 ┄┄ │ │ │ ├─ optics-core-0.4.1 ┄┄ │ │ │ ├─ text-1.2.4.1 ┄┄ │ │ │ ├─ transformers-0.5.6.2 ┄┄ │ │ │ ├─ unordered-containers-0.2.19.1 ┄┄ │ │ │ └─ vector-0.12.3.1 ┄┄ │ │ ├─ scientific-0.3.7.0 ┄┄ │ │ ├─ text-1.2.4.1 ┄┄ │ │ ├─ text-short-0.1.5 ┄┄ │ │ ├─ unordered-containers-0.2.19.1 ┄┄ │ │ └─ vector-0.12.3.1 ┄┄ │ ├─ async-2.2.4 │ │ ├─ base-4.14.3.0 ┄┄ │ │ ├─ hashable-1.4.0.2 ┄┄ │ │ └─ stm-2.5.0.1 ┄┄ │ ├─ base-4.14.3.0 ┄┄ │ ├─ bytestring-0.10.12.0 ┄┄ │ ├─ calamity-commands-0.4.0.0 │ │ ├─ base-4.14.3.0 ┄┄ │ │ ├─ megaparsec-9.2.1 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ ├─ case-insensitive-1.2.1.0 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ │ ├─ hashable-1.4.0.2 ┄┄ │ │ │ │ └─ text-1.2.4.1 ┄┄ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ ├─ mtl-2.2.2 ┄┄ │ │ │ ├─ parser-combinators-1.3.0 │ │ │ │ └─ base-4.14.3.0 ┄┄ │ │ │ ├─ scientific-0.3.7.0 ┄┄ │ │ │ ├─ text-1.2.4.1 ┄┄ │ │ │ └─ transformers-0.5.6.2 ┄┄ │ │ ├─ optics-0.4.2 │ │ │ ├─ array-0.5.4.0 ┄┄ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ ├─ mtl-2.2.2 ┄┄ │ │ │ ├─ optics-core-0.4.1 ┄┄ │ │ │ ├─ optics-extra-0.4.2.1 ┄┄ │ │ │ ├─ optics-th-0.4.1 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ │ ├─ mtl-2.2.2 ┄┄ │ │ │ │ ├─ optics-core-0.4.1 ┄┄ │ │ │ │ ├─ template-haskell-2.16.0.0 ┄┄ │ │ │ │ ├─ th-abstraction-0.4.3.0 ┄┄ │ │ │ │ └─ transformers-0.5.6.2 ┄┄ │ │ │ └─ transformers-0.5.6.2 ┄┄ │ │ ├─ polysemy-1.7.1.0 │ │ │ ├─ QuickCheck-2.14.2 ┄┄ │ │ │ ├─ async-2.2.4 ┄┄ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ ├─ first-class-families-0.8.0.1 │ │ │ │ └─ base-4.14.3.0 ┄┄ │ │ │ ├─ mtl-2.2.2 ┄┄ │ │ │ ├─ stm-2.5.0.1 ┄┄ │ │ │ ├─ syb-0.7.2.1 │ │ │ │ └─ base-4.14.3.0 ┄┄ │ │ │ ├─ template-haskell-2.16.0.0 ┄┄ │ │ │ ├─ th-abstraction-0.4.3.0 ┄┄ │ │ │ ├─ transformers-0.5.6.2 ┄┄ │ │ │ ├─ type-errors-0.2.0.0 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ first-class-families-0.8.0.1 ┄┄ │ │ │ │ ├─ syb-0.7.2.1 ┄┄ │ │ │ │ ├─ template-haskell-2.16.0.0 ┄┄ │ │ │ │ └─ th-abstraction-0.4.3.0 ┄┄ │ │ │ └─ unagi-chan-0.4.1.4 │ │ │ ├─ atomic-primops-0.8.4 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ ghc-prim-0.6.1 ┄┄ │ │ │ │ └─ primitive-0.7.4.0 ┄┄ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ ghc-prim-0.6.1 ┄┄ │ │ │ └─ primitive-0.7.4.0 ┄┄ │ │ │ [setup] │ │ │ ├─ Cabal-3.2.1.0 │ │ │ │ ├─ array-0.5.4.0 ┄┄ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ binary-0.8.8.0 ┄┄ │ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ │ ├─ directory-1.3.6.0 ┄┄ │ │ │ │ ├─ filepath-1.4.2.1 ┄┄ │ │ │ │ ├─ mtl-2.2.2 ┄┄ │ │ │ │ ├─ parsec-3.1.14.0 ┄┄ │ │ │ │ ├─ pretty-1.1.3.6 ┄┄ │ │ │ │ ├─ process-1.6.13.2 ┄┄ │ │ │ │ ├─ text-1.2.4.1 ┄┄ │ │ │ │ ├─ time-1.9.3 ┄┄ │ │ │ │ ├─ transformers-0.5.6.2 ┄┄ │ │ │ │ └─ unix-2.7.2.2 ┄┄ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ └─ cabal-doctest-1.0.9 │ │ │ ├─ Cabal-3.2.1.0 ┄┄ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ directory-1.3.6.0 ┄┄ │ │ │ └─ filepath-1.4.2.1 ┄┄ │ │ ├─ polysemy-plugin-0.4.3.0 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ ├─ ghc-8.10.7 ┄┄ │ │ │ ├─ ghc-tcplugins-extra-0.4.2 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ └─ ghc-8.10.7 ┄┄ │ │ │ ├─ polysemy-1.7.1.0 ┄┄ │ │ │ ├─ syb-0.7.2.1 ┄┄ │ │ │ └─ transformers-0.5.6.2 ┄┄ │ │ │ [setup] │ │ │ ├─ Cabal-3.2.1.0 ┄┄ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ └─ cabal-doctest-1.0.9 ┄┄ │ │ ├─ text-1.2.4.1 ┄┄ │ │ ├─ text-show-3.9.7 │ │ │ ├─ array-0.5.4.0 ┄┄ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ base-compat-batteries-0.12.1 ┄┄ │ │ │ ├─ bifunctors-5.5.12 ┄┄ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ ├─ bytestring-builder-0.10.8.2.0 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ │ └─ deepseq-1.4.4.0 ┄┄ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ ├─ generic-deriving-1.14.1 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ │ ├─ ghc-prim-0.6.1 ┄┄ │ │ │ │ ├─ template-haskell-2.16.0.0 ┄┄ │ │ │ │ └─ th-abstraction-0.4.3.0 ┄┄ │ │ │ ├─ ghc-boot-th-8.10.7 ┄┄ │ │ │ ├─ ghc-prim-0.6.1 ┄┄ │ │ │ ├─ integer-gmp-1.0.3.0 ┄┄ │ │ │ ├─ template-haskell-2.16.0.0 ┄┄ │ │ │ ├─ text-1.2.4.1 ┄┄ │ │ │ ├─ th-abstraction-0.4.3.0 ┄┄ │ │ │ ├─ th-lift-0.8.2 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ ghc-prim-0.6.1 ┄┄ │ │ │ │ ├─ template-haskell-2.16.0.0 ┄┄ │ │ │ │ └─ th-abstraction-0.4.3.0 ┄┄ │ │ │ ├─ transformers-0.5.6.2 ┄┄ │ │ │ └─ transformers-compat-0.7.2 ┄┄ │ │ └─ unordered-containers-0.2.19.1 ┄┄ │ ├─ colour-2.3.6 │ │ └─ base-4.14.3.0 ┄┄ │ ├─ concurrent-extra-0.7.0.12 │ │ ├─ base-4.14.3.0 ┄┄ │ │ ├─ stm-2.5.0.1 ┄┄ │ │ └─ unbounded-delays-0.1.1.1 │ │ └─ base-4.14.3.0 ┄┄ │ ├─ connection-0.3.1 │ │ ├─ base-4.14.3.0 ┄┄ │ │ ├─ basement-0.0.14 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ └─ ghc-prim-0.6.1 ┄┄ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ ├─ data-default-class-0.1.2.0 │ │ │ └─ base-4.14.3.0 ┄┄ │ │ ├─ network-3.1.2.7 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ └─ directory-1.3.6.0 ┄┄ │ │ ├─ socks-0.6.1 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ basement-0.0.14 ┄┄ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ ├─ cereal-0.5.8.2 │ │ │ │ ├─ array-0.5.4.0 ┄┄ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ │ └─ ghc-prim-0.6.1 ┄┄ │ │ │ └─ network-3.1.2.7 ┄┄ │ │ ├─ tls-1.6.0 │ │ │ ├─ asn1-encoding-0.9.6 │ │ │ │ ├─ asn1-types-0.3.4 │ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ │ │ ├─ hourglass-0.2.12 │ │ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ │ │ └─ deepseq-1.4.4.0 ┄┄ │ │ │ │ │ └─ memory-0.17.0 │ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ │ ├─ basement-0.0.14 ┄┄ │ │ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ │ │ └─ ghc-prim-0.6.1 ┄┄ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ │ └─ hourglass-0.2.12 ┄┄ │ │ │ ├─ asn1-types-0.3.4 ┄┄ │ │ │ ├─ async-2.2.4 ┄┄ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ ├─ cereal-0.5.8.2 ┄┄ │ │ │ ├─ cryptonite-0.30 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ basement-0.0.14 ┄┄ │ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ │ ├─ ghc-prim-0.6.1 ┄┄ │ │ │ │ ├─ integer-gmp-1.0.3.0 ┄┄ │ │ │ │ └─ memory-0.17.0 ┄┄ │ │ │ ├─ data-default-class-0.1.2.0 ┄┄ │ │ │ ├─ hourglass-0.2.12 ┄┄ │ │ │ ├─ memory-0.17.0 ┄┄ │ │ │ ├─ mtl-2.2.2 ┄┄ │ │ │ ├─ network-3.1.2.7 ┄┄ │ │ │ ├─ transformers-0.5.6.2 ┄┄ │ │ │ ├─ x509-1.7.7 │ │ │ │ ├─ asn1-encoding-0.9.6 ┄┄ │ │ │ │ ├─ asn1-parse-0.9.5 │ │ │ │ │ ├─ asn1-encoding-0.9.6 ┄┄ │ │ │ │ │ ├─ asn1-types-0.3.4 ┄┄ │ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ │ └─ bytestring-0.10.12.0 ┄┄ │ │ │ │ ├─ asn1-types-0.3.4 ┄┄ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ │ ├─ cryptonite-0.30 ┄┄ │ │ │ │ ├─ hourglass-0.2.12 ┄┄ │ │ │ │ ├─ memory-0.17.0 ┄┄ │ │ │ │ ├─ pem-0.2.4 │ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ │ ├─ basement-0.0.14 ┄┄ │ │ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ │ │ └─ memory-0.17.0 ┄┄ │ │ │ │ └─ transformers-0.5.6.2 ┄┄ │ │ │ ├─ x509-store-1.6.9 │ │ │ │ ├─ asn1-encoding-0.9.6 ┄┄ │ │ │ │ ├─ asn1-types-0.3.4 ┄┄ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ │ ├─ cryptonite-0.30 ┄┄ │ │ │ │ ├─ directory-1.3.6.0 ┄┄ │ │ │ │ ├─ filepath-1.4.2.1 ┄┄ │ │ │ │ ├─ mtl-2.2.2 ┄┄ │ │ │ │ ├─ pem-0.2.4 ┄┄ │ │ │ │ └─ x509-1.7.7 ┄┄ │ │ │ └─ x509-validation-1.6.12 │ │ │ ├─ asn1-encoding-0.9.6 ┄┄ │ │ │ ├─ asn1-types-0.3.4 ┄┄ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ ├─ cryptonite-0.30 ┄┄ │ │ │ ├─ data-default-class-0.1.2.0 ┄┄ │ │ │ ├─ hourglass-0.2.12 ┄┄ │ │ │ ├─ memory-0.17.0 ┄┄ │ │ │ ├─ mtl-2.2.2 ┄┄ │ │ │ ├─ pem-0.2.4 ┄┄ │ │ │ ├─ x509-1.7.7 ┄┄ │ │ │ └─ x509-store-1.6.9 ┄┄ │ │ ├─ x509-1.7.7 ┄┄ │ │ ├─ x509-store-1.6.9 ┄┄ │ │ ├─ x509-system-1.6.7 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ ├─ directory-1.3.6.0 ┄┄ │ │ │ ├─ filepath-1.4.2.1 ┄┄ │ │ │ ├─ mtl-2.2.2 ┄┄ │ │ │ ├─ pem-0.2.4 ┄┄ │ │ │ ├─ process-1.6.13.2 ┄┄ │ │ │ ├─ x509-1.7.7 ┄┄ │ │ │ └─ x509-store-1.6.9 ┄┄ │ │ └─ x509-validation-1.6.12 ┄┄ │ ├─ containers-0.6.5.1 ┄┄ │ ├─ data-default-class-0.1.2.0 ┄┄ │ ├─ data-flags-0.0.3.4 │ │ ├─ base-4.14.3.0 ┄┄ │ │ └─ template-haskell-2.16.0.0 ┄┄ │ ├─ deepseq-1.4.4.0 ┄┄ │ ├─ deque-0.4.4 │ │ ├─ base-4.14.3.0 ┄┄ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ ├─ hashable-1.4.0.2 ┄┄ │ │ ├─ mtl-2.2.2 ┄┄ │ │ └─ strict-list-0.1.7 │ │ ├─ base-4.14.3.0 ┄┄ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ ├─ hashable-1.4.0.2 ┄┄ │ │ └─ semigroupoids-5.3.7 ┄┄ │ ├─ df1-0.4 │ │ ├─ attoparsec-0.14.4 ┄┄ │ │ ├─ base-4.14.3.0 ┄┄ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ ├─ text-1.2.4.1 ┄┄ │ │ └─ time-1.9.3 ┄┄ │ ├─ di-core-1.0.4 │ │ ├─ base-4.14.3.0 ┄┄ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ ├─ safe-exceptions-0.1.7.3 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ ├─ exceptions-0.10.4 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ mtl-2.2.2 ┄┄ │ │ │ │ ├─ stm-2.5.0.1 ┄┄ │ │ │ │ ├─ template-haskell-2.16.0.0 ┄┄ │ │ │ │ └─ transformers-0.5.6.2 ┄┄ │ │ │ └─ transformers-0.5.6.2 ┄┄ │ │ ├─ stm-2.5.0.1 ┄┄ │ │ └─ time-1.9.3 ┄┄ │ ├─ di-polysemy-0.2.0.0 │ │ ├─ base-4.14.3.0 ┄┄ │ │ ├─ df1-0.4 ┄┄ │ │ ├─ di-core-1.0.4 ┄┄ │ │ ├─ di-df1-1.2.1 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ df1-0.4 ┄┄ │ │ │ ├─ di-core-1.0.4 ┄┄ │ │ │ ├─ di-handle-1.0.1 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ │ ├─ di-core-1.0.4 ┄┄ │ │ │ │ ├─ exceptions-0.10.4 ┄┄ │ │ │ │ └─ unix-2.7.2.2 ┄┄ │ │ │ ├─ di-monad-1.3.1 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ │ ├─ di-core-1.0.4 ┄┄ │ │ │ │ ├─ exceptions-0.10.4 ┄┄ │ │ │ │ ├─ mtl-2.2.2 ┄┄ │ │ │ │ ├─ pipes-4.3.16 │ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ │ ├─ exceptions-0.10.4 ┄┄ │ │ │ │ │ ├─ mmorph-1.2.0 │ │ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ │ │ ├─ mtl-2.2.2 ┄┄ │ │ │ │ │ │ ├─ transformers-0.5.6.2 ┄┄ │ │ │ │ │ │ └─ transformers-compat-0.7.2 ┄┄ │ │ │ │ │ ├─ mtl-2.2.2 ┄┄ │ │ │ │ │ ├─ transformers-0.5.6.2 ┄┄ │ │ │ │ │ └─ void-0.7.3 │ │ │ │ │ └─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ stm-2.5.0.1 ┄┄ │ │ │ │ └─ transformers-0.5.6.2 ┄┄ │ │ │ └─ stm-2.5.0.1 ┄┄ │ │ ├─ di-handle-1.0.1 ┄┄ │ │ └─ polysemy-1.7.1.0 ┄┄ │ ├─ exceptions-0.10.4 ┄┄ │ ├─ focus-1.0.3 │ │ ├─ base-4.14.3.0 ┄┄ │ │ └─ transformers-0.5.6.2 ┄┄ │ ├─ hashable-1.4.0.2 ┄┄ │ ├─ http-api-data-0.4.3 │ │ ├─ attoparsec-0.14.4 ┄┄ │ │ ├─ attoparsec-iso8601-1.0.2.1 │ │ │ ├─ attoparsec-0.14.4 ┄┄ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ base-compat-batteries-0.12.1 ┄┄ │ │ │ ├─ text-1.2.4.1 ┄┄ │ │ │ ├─ time-1.9.3 ┄┄ │ │ │ └─ time-compat-1.9.6.1 ┄┄ │ │ ├─ base-4.14.3.0 ┄┄ │ │ ├─ base-compat-0.12.1 ┄┄ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ ├─ cookie-0.4.5 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ ├─ data-default-class-0.1.2.0 ┄┄ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ ├─ text-1.2.4.1 ┄┄ │ │ │ └─ time-1.9.3 ┄┄ │ │ ├─ hashable-1.4.0.2 ┄┄ │ │ ├─ http-types-0.12.3 │ │ │ ├─ array-0.5.4.0 ┄┄ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ ├─ case-insensitive-1.2.1.0 ┄┄ │ │ │ └─ text-1.2.4.1 ┄┄ │ │ ├─ tagged-0.8.6.1 ┄┄ │ │ ├─ text-1.2.4.1 ┄┄ │ │ ├─ time-compat-1.9.6.1 ┄┄ │ │ ├─ transformers-0.5.6.2 ┄┄ │ │ ├─ unordered-containers-0.2.19.1 ┄┄ │ │ └─ uuid-types-1.0.5 ┄┄ │ ├─ http-client-0.7.11 │ │ ├─ array-0.5.4.0 ┄┄ │ │ ├─ async-2.2.4 ┄┄ │ │ ├─ base-4.14.3.0 ┄┄ │ │ ├─ base64-bytestring-1.2.1.0 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ └─ bytestring-0.10.12.0 ┄┄ │ │ ├─ blaze-builder-0.4.2.2 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ ├─ ghc-prim-0.6.1 ┄┄ │ │ │ └─ text-1.2.4.1 ┄┄ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ ├─ case-insensitive-1.2.1.0 ┄┄ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ ├─ cookie-0.4.5 ┄┄ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ ├─ exceptions-0.10.4 ┄┄ │ │ ├─ filepath-1.4.2.1 ┄┄ │ │ ├─ ghc-prim-0.6.1 ┄┄ │ │ ├─ http-types-0.12.3 ┄┄ │ │ ├─ iproute-1.7.12 │ │ │ ├─ appar-0.1.8 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ └─ bytestring-0.10.12.0 ┄┄ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ byteorder-1.0.4 │ │ │ │ └─ base-4.14.3.0 ┄┄ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ └─ network-3.1.2.7 ┄┄ │ │ ├─ mime-types-0.1.0.9 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ └─ text-1.2.4.1 ┄┄ │ │ ├─ network-3.1.2.7 ┄┄ │ │ ├─ network-uri-2.6.4.1 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ ├─ parsec-3.1.14.0 ┄┄ │ │ │ ├─ template-haskell-2.16.0.0 ┄┄ │ │ │ └─ th-compat-0.1.3 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ └─ template-haskell-2.16.0.0 ┄┄ │ │ ├─ random-1.2.1.1 ┄┄ │ │ ├─ stm-2.5.0.1 ┄┄ │ │ ├─ streaming-commons-0.2.2.4 │ │ │ ├─ array-0.5.4.0 ┄┄ │ │ │ ├─ async-2.2.4 ┄┄ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ ├─ directory-1.3.6.0 ┄┄ │ │ │ ├─ network-3.1.2.7 ┄┄ │ │ │ ├─ process-1.6.13.2 ┄┄ │ │ │ ├─ random-1.2.1.1 ┄┄ │ │ │ ├─ stm-2.5.0.1 ┄┄ │ │ │ ├─ text-1.2.4.1 ┄┄ │ │ │ ├─ transformers-0.5.6.2 ┄┄ │ │ │ ├─ unix-2.7.2.2 ┄┄ │ │ │ └─ zlib-0.6.3.0 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ └─ bytestring-0.10.12.0 ┄┄ │ │ ├─ text-1.2.4.1 ┄┄ │ │ ├─ time-1.9.3 ┄┄ │ │ └─ transformers-0.5.6.2 ┄┄ │ ├─ http-date-0.0.11 │ │ ├─ array-0.5.4.0 ┄┄ │ │ ├─ attoparsec-0.14.4 ┄┄ │ │ ├─ base-4.14.3.0 ┄┄ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ └─ time-1.9.3 ┄┄ │ ├─ http-types-0.12.3 ┄┄ │ ├─ megaparsec-9.2.1 ┄┄ │ ├─ mime-types-0.1.0.9 ┄┄ │ ├─ mtl-2.2.2 ┄┄ │ ├─ optics-0.4.2 ┄┄ │ ├─ polysemy-1.7.1.0 ┄┄ │ ├─ polysemy-plugin-0.4.3.0 ┄┄ │ ├─ random-1.2.1.1 ┄┄ │ ├─ reflection-2.1.6 │ │ ├─ base-4.14.3.0 ┄┄ │ │ └─ template-haskell-2.16.0.0 ┄┄ │ ├─ req-3.10.0 │ │ ├─ aeson-2.0.3.0 ┄┄ │ │ ├─ authenticate-oauth-1.7 │ │ │ ├─ RSA-2.4.1 │ │ │ │ ├─ SHA-1.6.4.4 │ │ │ │ │ ├─ array-0.5.4.0 ┄┄ │ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ │ ├─ binary-0.8.8.0 ┄┄ │ │ │ │ │ └─ bytestring-0.10.12.0 ┄┄ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ binary-0.8.8.0 ┄┄ │ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ │ ├─ crypto-api-0.13.3 │ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ │ │ ├─ cereal-0.5.8.2 ┄┄ │ │ │ │ │ ├─ entropy-0.4.1.7 │ │ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ │ │ │ └─ unix-2.7.2.2 ┄┄ │ │ │ │ │ │ [setup] │ │ │ │ │ │ ├─ Cabal-3.2.1.0 ┄┄ │ │ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ │ │ ├─ directory-1.3.6.0 ┄┄ │ │ │ │ │ │ ├─ filepath-1.4.2.1 ┄┄ │ │ │ │ │ │ └─ process-1.6.13.2 ┄┄ │ │ │ │ │ ├─ tagged-0.8.6.1 ┄┄ │ │ │ │ │ └─ transformers-0.5.6.2 ┄┄ │ │ │ │ └─ crypto-pubkey-types-0.4.3 │ │ │ │ ├─ asn1-encoding-0.9.6 ┄┄ │ │ │ │ ├─ asn1-types-0.3.4 ┄┄ │ │ │ │ └─ base-4.14.3.0 ┄┄ │ │ │ ├─ SHA-1.6.4.4 ┄┄ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ base64-bytestring-1.2.1.0 ┄┄ │ │ │ ├─ blaze-builder-0.4.2.2 ┄┄ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ ├─ crypto-pubkey-types-0.4.3 ┄┄ │ │ │ ├─ data-default-0.7.1.1 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ data-default-class-0.1.2.0 ┄┄ │ │ │ │ ├─ data-default-instances-containers-0.0.1 │ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ │ │ └─ data-default-class-0.1.2.0 ┄┄ │ │ │ │ ├─ data-default-instances-dlist-0.0.1 │ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ │ ├─ data-default-class-0.1.2.0 ┄┄ │ │ │ │ │ └─ dlist-1.0 ┄┄ │ │ │ │ └─ data-default-instances-old-locale-0.0.1 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ data-default-class-0.1.2.0 ┄┄ │ │ │ │ └─ old-locale-1.0.0.7 │ │ │ │ └─ base-4.14.3.0 ┄┄ │ │ │ ├─ http-client-0.7.11 ┄┄ │ │ │ ├─ http-types-0.12.3 ┄┄ │ │ │ ├─ random-1.2.1.1 ┄┄ │ │ │ ├─ time-1.9.3 ┄┄ │ │ │ ├─ transformers-0.5.6.2 ┄┄ │ │ │ └─ transformers-compat-0.7.2 ┄┄ │ │ ├─ base-4.14.3.0 ┄┄ │ │ ├─ blaze-builder-0.4.2.2 ┄┄ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ ├─ case-insensitive-1.2.1.0 ┄┄ │ │ ├─ connection-0.3.1 ┄┄ │ │ ├─ exceptions-0.10.4 ┄┄ │ │ ├─ http-api-data-0.4.3 ┄┄ │ │ ├─ http-client-0.7.11 ┄┄ │ │ ├─ http-client-tls-0.3.6.1 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ ├─ case-insensitive-1.2.1.0 ┄┄ │ │ │ ├─ connection-0.3.1 ┄┄ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ ├─ cryptonite-0.30 ┄┄ │ │ │ ├─ data-default-class-0.1.2.0 ┄┄ │ │ │ ├─ exceptions-0.10.4 ┄┄ │ │ │ ├─ http-client-0.7.11 ┄┄ │ │ │ ├─ http-types-0.12.3 ┄┄ │ │ │ ├─ memory-0.17.0 ┄┄ │ │ │ ├─ network-3.1.2.7 ┄┄ │ │ │ ├─ network-uri-2.6.4.1 ┄┄ │ │ │ ├─ text-1.2.4.1 ┄┄ │ │ │ ├─ tls-1.6.0 ┄┄ │ │ │ └─ transformers-0.5.6.2 ┄┄ │ │ ├─ http-types-0.12.3 ┄┄ │ │ ├─ modern-uri-0.3.4.4 │ │ │ ├─ QuickCheck-2.14.2 ┄┄ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ ├─ contravariant-1.5.5 ┄┄ │ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ │ ├─ exceptions-0.10.4 ┄┄ │ │ │ ├─ megaparsec-9.2.1 ┄┄ │ │ │ ├─ mtl-2.2.2 ┄┄ │ │ │ ├─ profunctors-5.6.2 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ base-orphans-0.8.6 ┄┄ │ │ │ │ ├─ bifunctors-5.5.12 ┄┄ │ │ │ │ ├─ comonad-5.0.8 ┄┄ │ │ │ │ ├─ contravariant-1.5.5 ┄┄ │ │ │ │ ├─ distributive-0.6.2.1 ┄┄ │ │ │ │ ├─ tagged-0.8.6.1 ┄┄ │ │ │ │ └─ transformers-0.5.6.2 ┄┄ │ │ │ ├─ reflection-2.1.6 ┄┄ │ │ │ ├─ tagged-0.8.6.1 ┄┄ │ │ │ ├─ template-haskell-2.16.0.0 ┄┄ │ │ │ └─ text-1.2.4.1 ┄┄ │ │ ├─ monad-control-1.0.3.1 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ stm-2.5.0.1 ┄┄ │ │ │ ├─ transformers-0.5.6.2 ┄┄ │ │ │ ├─ transformers-base-0.4.6 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ base-orphans-0.8.6 ┄┄ │ │ │ │ ├─ stm-2.5.0.1 ┄┄ │ │ │ │ ├─ transformers-0.5.6.2 ┄┄ │ │ │ │ └─ transformers-compat-0.7.2 ┄┄ │ │ │ └─ transformers-compat-0.7.2 ┄┄ │ │ ├─ mtl-2.2.2 ┄┄ │ │ ├─ retry-0.9.2.1 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ exceptions-0.10.4 ┄┄ │ │ │ ├─ ghc-prim-0.6.1 ┄┄ │ │ │ ├─ mtl-2.2.2 ┄┄ │ │ │ ├─ mtl-compat-0.2.2 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ └─ mtl-2.2.2 ┄┄ │ │ │ ├─ random-1.2.1.1 ┄┄ │ │ │ └─ transformers-0.5.6.2 ┄┄ │ │ ├─ template-haskell-2.16.0.0 ┄┄ │ │ ├─ text-1.2.4.1 ┄┄ │ │ ├─ time-1.9.3 ┄┄ │ │ ├─ transformers-0.5.6.2 ┄┄ │ │ ├─ transformers-base-0.4.6 ┄┄ │ │ └─ unliftio-core-0.2.0.1 │ │ ├─ base-4.14.3.0 ┄┄ │ │ └─ transformers-0.5.6.2 ┄┄ │ ├─ safe-exceptions-0.1.7.3 ┄┄ │ ├─ scientific-0.3.7.0 ┄┄ │ ├─ stm-2.5.0.1 ┄┄ │ ├─ stm-chans-3.0.0.6 │ │ ├─ base-4.14.3.0 ┄┄ │ │ └─ stm-2.5.0.1 ┄┄ │ ├─ stm-containers-1.2 │ │ ├─ base-4.14.3.0 ┄┄ │ │ ├─ deferred-folds-0.9.18.2 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ ├─ foldl-1.4.12 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ │ ├─ comonad-5.0.8 ┄┄ │ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ │ ├─ contravariant-1.5.5 ┄┄ │ │ │ │ ├─ hashable-1.4.0.2 ┄┄ │ │ │ │ ├─ primitive-0.7.4.0 ┄┄ │ │ │ │ ├─ profunctors-5.6.2 ┄┄ │ │ │ │ ├─ random-1.2.1.1 ┄┄ │ │ │ │ ├─ semigroupoids-5.3.7 ┄┄ │ │ │ │ ├─ text-1.2.4.1 ┄┄ │ │ │ │ ├─ transformers-0.5.6.2 ┄┄ │ │ │ │ ├─ unordered-containers-0.2.19.1 ┄┄ │ │ │ │ └─ vector-0.12.3.1 ┄┄ │ │ │ ├─ hashable-1.4.0.2 ┄┄ │ │ │ ├─ primitive-0.7.4.0 ┄┄ │ │ │ ├─ text-1.2.4.1 ┄┄ │ │ │ ├─ transformers-0.5.6.2 ┄┄ │ │ │ ├─ unordered-containers-0.2.19.1 ┄┄ │ │ │ └─ vector-0.12.3.1 ┄┄ │ │ ├─ focus-1.0.3 ┄┄ │ │ ├─ hashable-1.4.0.2 ┄┄ │ │ ├─ list-t-1.0.5.2 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ foldl-1.4.12 ┄┄ │ │ │ ├─ logict-0.8.0.0 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ └─ mtl-2.2.2 ┄┄ │ │ │ ├─ mmorph-1.2.0 ┄┄ │ │ │ ├─ monad-control-1.0.3.1 ┄┄ │ │ │ ├─ mtl-2.2.2 ┄┄ │ │ │ ├─ semigroups-0.20 │ │ │ │ └─ base-4.14.3.0 ┄┄ │ │ │ ├─ transformers-0.5.6.2 ┄┄ │ │ │ └─ transformers-base-0.4.6 ┄┄ │ │ ├─ stm-hamt-1.2.0.7 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ deferred-folds-0.9.18.2 ┄┄ │ │ │ ├─ focus-1.0.3 ┄┄ │ │ │ ├─ hashable-1.4.0.2 ┄┄ │ │ │ ├─ list-t-1.0.5.2 ┄┄ │ │ │ ├─ primitive-0.7.4.0 ┄┄ │ │ │ ├─ primitive-extras-0.10.1.5 │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ │ ├─ cereal-0.5.8.2 ┄┄ │ │ │ │ ├─ deferred-folds-0.9.18.2 ┄┄ │ │ │ │ ├─ focus-1.0.3 ┄┄ │ │ │ │ ├─ foldl-1.4.12 ┄┄ │ │ │ │ ├─ list-t-1.0.5.2 ┄┄ │ │ │ │ ├─ primitive-0.7.4.0 ┄┄ │ │ │ │ ├─ primitive-unlifted-0.1.3.1 │ │ │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ │ │ ├─ primitive-0.7.4.0 ┄┄ │ │ │ │ │ └─ text-short-0.1.5 ┄┄ │ │ │ │ ├─ profunctors-5.6.2 ┄┄ │ │ │ │ └─ vector-0.12.3.1 ┄┄ │ │ │ └─ transformers-0.5.6.2 ┄┄ │ │ └─ transformers-0.5.6.2 ┄┄ │ ├─ text-1.2.4.1 ┄┄ │ ├─ text-show-3.9.7 ┄┄ │ ├─ time-1.9.3 ┄┄ │ ├─ tls-1.6.0 ┄┄ │ ├─ typerep-map-0.5.0.0 │ │ ├─ base-4.14.3.0 ┄┄ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ ├─ ghc-prim-0.6.1 ┄┄ │ │ └─ primitive-0.7.4.0 ┄┄ │ ├─ unagi-chan-0.4.1.4 ┄┄ │ ├─ unboxing-vector-0.2.0.0 │ │ ├─ base-4.14.3.0 ┄┄ │ │ ├─ deepseq-1.4.4.0 ┄┄ │ │ ├─ mono-traversable-1.0.15.3 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ │ ├─ hashable-1.4.0.2 ┄┄ │ │ │ ├─ split-0.2.3.4 │ │ │ │ └─ base-4.14.3.0 ┄┄ │ │ │ ├─ text-1.2.4.1 ┄┄ │ │ │ ├─ transformers-0.5.6.2 ┄┄ │ │ │ ├─ unordered-containers-0.2.19.1 ┄┄ │ │ │ ├─ vector-0.12.3.1 ┄┄ │ │ │ └─ vector-algorithms-0.8.0.4 │ │ │ ├─ base-4.14.3.0 ┄┄ │ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ │ ├─ primitive-0.7.4.0 ┄┄ │ │ │ └─ vector-0.12.3.1 ┄┄ │ │ ├─ primitive-0.7.4.0 ┄┄ │ │ └─ vector-0.12.3.1 ┄┄ │ ├─ unordered-containers-0.2.19.1 ┄┄ │ ├─ vector-0.12.3.1 ┄┄ │ ├─ websockets-0.12.7.3 │ │ ├─ SHA-1.6.4.4 ┄┄ │ │ ├─ async-2.2.4 ┄┄ │ │ ├─ attoparsec-0.14.4 ┄┄ │ │ ├─ base-4.14.3.0 ┄┄ │ │ ├─ base64-bytestring-1.2.1.0 ┄┄ │ │ ├─ binary-0.8.8.0 ┄┄ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ ├─ bytestring-builder-0.10.8.2.0 ┄┄ │ │ ├─ case-insensitive-1.2.1.0 ┄┄ │ │ ├─ clock-0.8.3 │ │ │ └─ base-4.14.3.0 ┄┄ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ ├─ entropy-0.4.1.7 ┄┄ │ │ ├─ network-3.1.2.7 ┄┄ │ │ ├─ random-1.2.1.1 ┄┄ │ │ ├─ streaming-commons-0.2.2.4 ┄┄ │ │ └─ text-1.2.4.1 ┄┄ │ └─ x509-system-1.6.7 ┄┄ ├─ calamity-commands-0.4.0.0 ┄┄ ├─ di-1.3 │ ├─ base-4.14.3.0 ┄┄ │ ├─ containers-0.6.5.1 ┄┄ │ ├─ df1-0.4 ┄┄ │ ├─ di-core-1.0.4 ┄┄ │ ├─ di-df1-1.2.1 ┄┄ │ ├─ di-handle-1.0.1 ┄┄ │ ├─ di-monad-1.3.1 ┄┄ │ └─ exceptions-0.10.4 ┄┄ ├─ di-polysemy-0.2.0.0 ┄┄ ├─ optics-0.4.2 ┄┄ ├─ polysemy-1.7.1.0 ┄┄ ├─ polysemy-plugin-0.4.3.0 ┄┄ └─ string-interpolate-0.3.1.2 ├─ base-4.14.3.0 ┄┄ ├─ bytestring-0.10.12.0 ┄┄ ├─ haskell-src-exts-1.23.1 │ ├─ array-0.5.4.0 ┄┄ │ ├─ base-4.14.3.0 ┄┄ │ ├─ ghc-prim-0.6.1 ┄┄ │ └─ pretty-1.1.3.6 ┄┄ ├─ haskell-src-meta-0.8.10 │ ├─ base-4.14.3.0 ┄┄ │ ├─ haskell-src-exts-1.23.1 ┄┄ │ ├─ pretty-1.1.3.6 ┄┄ │ ├─ syb-0.7.2.1 ┄┄ │ ├─ template-haskell-2.16.0.0 ┄┄ │ └─ th-orphans-0.13.13 │ ├─ base-4.14.3.0 ┄┄ │ ├─ mtl-2.2.2 ┄┄ │ ├─ template-haskell-2.16.0.0 ┄┄ │ ├─ th-compat-0.1.3 ┄┄ │ ├─ th-lift-0.8.2 ┄┄ │ ├─ th-lift-instances-0.1.19 │ │ ├─ base-4.14.3.0 ┄┄ │ │ ├─ bytestring-0.10.12.0 ┄┄ │ │ ├─ containers-0.6.5.1 ┄┄ │ │ ├─ template-haskell-2.16.0.0 ┄┄ │ │ ├─ text-1.2.4.1 ┄┄ │ │ ├─ th-lift-0.8.2 ┄┄ │ │ ├─ transformers-0.5.6.2 ┄┄ │ │ └─ vector-0.12.3.1 ┄┄ │ └─ th-reify-many-0.1.10 │ ├─ base-4.14.3.0 ┄┄ │ ├─ containers-0.6.5.1 ┄┄ │ ├─ mtl-2.2.2 ┄┄ │ ├─ safe-0.3.19 │ │ └─ base-4.14.3.0 ┄┄ │ ├─ template-haskell-2.16.0.0 ┄┄ │ └─ th-expand-syns-0.4.9.0 │ ├─ base-4.14.3.0 ┄┄ │ ├─ containers-0.6.5.1 ┄┄ │ ├─ syb-0.7.2.1 ┄┄ │ ├─ template-haskell-2.16.0.0 ┄┄ │ └─ th-abstraction-0.4.3.0 ┄┄ ├─ split-0.2.3.4 ┄┄ ├─ template-haskell-2.16.0.0 ┄┄ ├─ text-1.2.4.1 ┄┄ ├─ text-conversions-0.3.1.1 │ ├─ base-4.14.3.0 ┄┄ │ ├─ base16-bytestring-1.0.2.0 │ │ ├─ base-4.14.3.0 ┄┄ │ │ └─ bytestring-0.10.12.0 ┄┄ │ ├─ base64-bytestring-1.2.1.0 ┄┄ │ ├─ bytestring-0.10.12.0 ┄┄ │ └─ text-1.2.4.1 ┄┄ └─ utf8-string-1.0.2 ├─ base-4.14.3.0 ┄┄ └─ bytestring-0.10.12.0 ┄┄ typerep-map-0.5.0.0 [typerep-map-0.5.0.0:lib:"typerep-extra-impls"] ├─ base-4.14.3.0 ┄┄ ├─ containers-0.6.5.1 ┄┄ ├─ deepseq-1.4.4.0 ┄┄ └─ vector-0.12.3.1 ┄┄ ```
ruby0b commented 2 years ago

Edited the issue to use my minimal example: ruby0b/polysemy-panic-example

tek commented 2 years ago

far as I can tell, this is the minimal reproducer:

import Polysemy
import Polysemy.Error
import GHC.TypeLits

class A a b where

instance A a a where

instance {-# overlappable #-} TypeError ('ShowType a) => A a b where

bloink :: A a b => a
bloink = undefined

panic ::
  Members [Error Int, Error String] r =>
  Sem r ()
panic =
  throw bloink
tek commented 2 years ago

pushed a fix

tek commented 2 years ago

published a release

ruby0b commented 2 years ago

works great, thanks!