Skip to content

Migrate to aeson 2.0+ and fix GHC 9.6+ compatibility#1

Open
anpryl wants to merge 2 commits intosebright:masterfrom
anpryl:aeson-2.0-ghc-9.6-compat
Open

Migrate to aeson 2.0+ and fix GHC 9.6+ compatibility#1
anpryl wants to merge 2 commits intosebright:masterfrom
anpryl:aeson-2.0-ghc-9.6-compat

Conversation

@anpryl
Copy link
Copy Markdown

@anpryl anpryl commented Feb 9, 2026

Summary

Adds compatibility with aeson 2.0+ and GHC 9.6+.

aeson 2.0 migration

  • Replace Data.HashMap.Strict with Data.Aeson.Key / Data.Aeson.KeyMap
  • Update H.emptyKM.empty, H.insertKM.insert with AK.fromText, H.nullKM.null

GHC 9.6 compatibility

  • (<=<) is no longer re-exported from Control.Monad.Except in mtl 2.3+; import it from Control.Monad directly
  • Import lift from Control.Monad.Trans separately

🤖 Generated with Claude Code

anpryl and others added 2 commits February 9, 2026 19:51
aeson 2.0 migration:
- Replace Data.HashMap.Strict with Data.Aeson.Key/KeyMap APIs
- H.empty -> KM.empty, H.insert -> KM.insert with AK.fromText
- H.null -> KM.null

GHC 9.6 compatibility:
- Split Control.Monad.Except import: (<=<) moved to Control.Monad
- Import lift from Control.Monad.Trans separately

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Relax dependency upper bounds to support GHC 9.8 (base <4.21)
- Update aeson bound to >=2.0 (matching source migration)
- Replace Data.HashMap.Strict with Data.Aeson.KeyMap in tests
- Import 'when' from Control.Monad (no longer re-exported from
  Control.Monad.State in GHC 9.8)
- Update tested-with to GHC 9.6.6 and 9.8.4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant