-
Notifications
You must be signed in to change notification settings - Fork 16
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
Remove Lift (), Ratio a, Identity a and Const a #39
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This is a fix of a mess I started. The idea is to separate the three packages responsibilities: - `th-lift` provides `TemplateHaskell` based deriving code for `Lift` instances (and defines `Lift Name`) - `th-orphans` provides rest of `Lift` instances for `Language.Haskell.TH` namespace - `th-lift-instances` provides instances for small set of core packages, and acts as a compat module (e.g. provides `Lift ()`). Note: `th-lift-instances` uses `TemplateHaskellQuotes` only nowadays. (Which s sometimes handy, e.g. when splicing TemplateHaskell is broken...) That's why I removed `th-lift` dependency, and didn't notice the overlapping orphan instances problem in the first place.
I made the library to only use |
This is a fix of a mess I started. The idea is to separate the three packages responsibilities: - `th-lift` provides `TemplateHaskell` based deriving code for `Lift` instances (and defines `Lift Name`) - `th-orphans` provides rest of `Lift` instances for `Language.Haskell.TH` namespace - `th-lift-instances` provides instances for small set of core packages, and acts as a compat module (e.g. provides `Lift ()`). Note: `th-lift-instances` uses `TemplateHaskellQuotes` only nowadays. (Which s sometimes handy, e.g. when splicing TemplateHaskell is broken...) That's why I removed `th-lift` dependency, and didn't notice the overlapping orphan instances problem in the first place. This patch also simplifies the `build-depends` as `base` lower-bound is restricted by `th-abstractions` anyway (dead code removed from the library too). The `th-abstraction` upper bound is added, because Ryan promised to break every consumer, as type of `datatypeVars` will change.
phadej
force-pushed
the
remove-instances
branch
from
February 4, 2019 20:51
3a6c821
to
06d13af
Compare
ping @mboes |
1 similar comment
ping @mboes |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a fix of a mess I started. The idea is to separate
the three packages responsibilities:
th-lift
providesTemplateHaskell
based deriving code forLift
instances (and defines
Lift Name
)th-orphans
provides rest ofLift
instances forLanguage.Haskell.TH
namespaceth-lift-instances
provides instances for small set of core packages,and acts as a compat module (e.g. provides
Lift ()
).Note:
th-lift-instances
usesTemplateHaskellQuotes
only nowadays.(Which s sometimes handy, e.g. when splicing TemplateHaskell is broken...)
That's why I removed
th-lift
dependency, and didn't notice theoverlapping orphan instances problem in the first place.
This patch also simplifies the
build-depends
asbase
lower-boundis restricted by
th-abstractions
anyway (dead code removed from thelibrary too). The
th-abstraction
upper bound is added,because Ryan promised to break every consumer, as type of
datatypeVars
will change.
cc @RyanGlScott
If we can make this change, and then update also descriptions of
th-orphans
andth-lift-instances
to cross-link the packages, people will know where to look for things.I'll make a PR to add
Identity
,Const
with (usingtransformers
Identity
when it's not inbase)
toth-lift-instances
.This is unfortunate situation of shuffling orphans around, but the end result should be a lot cleared. I'll (as Hackage Trustee) help to sort out diamond breakages (as
th-lift
andth-lift-instances
don't depend on each other) if/when they occur.