Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Export generic classes #585

Merged

Conversation

edsko
Copy link
Contributor

@edsko edsko commented Aug 19, 2021

beam relies very heavily on GHC generics, but the standard GHC generic instances are not appropriate for all use cases (motivating example in this case being large-records). Fortunately, the way GHC generics is set up allows us to use non-standard representations, provided that we can then define additional instances for whatever generic classes are necessary. The beam-large-records library provides integration for large-records with beam-core, by providing these additional instances, but this does mean that the generic classes must be exported from beam-core so that additional instances can be provided. This commit adds these exports.

@edsko edsko mentioned this pull request Jan 10, 2022
@edsko
Copy link
Contributor Author

edsko commented Mar 15, 2022

Any chance of this being considered for merging and releasing?

@amano-kenji
Copy link

amano-kenji commented Jan 1, 2023

I'm just a contributor as you are. I can't merge any pull request here. This should be safe to merge.

@edsko edsko force-pushed the edsko/export-generic-classes branch from 7127337 to f13fedc Compare February 22, 2023 07:16
@edsko
Copy link
Contributor Author

edsko commented Feb 28, 2023

@tathougies any chance of this being merged? I've just rebased this on the most recent master, and verified that

  • all beam tests pass for all components with ghc 8.8.4, 8.10.7, 9.0.2, and 9.2.5
  • all beam tests pass for all components with ghc 9.4.4, except beam-migrate (unrelated to this PR: GHC 9.4 compatible release #649)
  • all beam-large-records tests (the package that depends on this PR) pass for ghc 8.8.4, 8.107, 9.0.2, 9.2.5 and 9.4.4

`beam` relies very heavily on GHC generics, but the standard GHC generic
instances are not appropriate for all use cases (motivating example in
this case being
[`large-records`](https://hackage.haskell.org/package/large-records)).
Fortunately, the way GHC generics is set up allows us to use
non-standard representations, _provided_ that we can then define
additional instances for whatever generic classes are necessary. The
[`beam-large-records`](https://github.com/well-typed/beam-large-records)
library provides integration for `large-records` with `beam-core`, by
providing these additional instances, but this does mean that the
generic classes must be _exported_ from `beam-core` so that additional
instances can be provided. This commit adds these exports.
@edsko edsko force-pushed the edsko/export-generic-classes branch from f13fedc to 57a12e6 Compare May 29, 2024 07:48
@edsko
Copy link
Contributor Author

edsko commented May 29, 2024

Rebased this once more. Verified that all beam's own tests pass with 8.8, 8.10, 9.0, 9.2, 9.4 and 9.6, as well as the beam-large-records tests.

Anyone?

@alexfmpe
Copy link
Contributor

@ tathougies any chance of this being merged? I've just rebased this on the most recent master, and verified that

I think @kmicklas is the one handling maintenance lately actually

@LaurentRDC
Copy link
Member

Hey new maintainer here, I can merge this and create a new release soon!

@LaurentRDC LaurentRDC merged commit 3b0c00b into haskell-beam:master Oct 9, 2024
@edsko
Copy link
Contributor Author

edsko commented Oct 10, 2024

Fantastic, thanks so much!

@edsko edsko deleted the edsko/export-generic-classes branch October 10, 2024 06:17
@LaurentRDC
Copy link
Member

This PR has been released in beam-core-0.10.3.0

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.

4 participants