You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In #328 we accepted the proposal to eventually remove return from Monad and mappend from Monoid. I've been making progress on the implementation here, and thought I should check how much of clc-stackage was broken.
In short, a lot of it.
The good news is I have patches for all ~148 packages that are needed to get stackage back on its feet.
The bad news is that these patches now have to be submitted to each package, reviewed, accepted, and uploaded to hackage to ensure a smooth transfer.
This is why I've made this issue: to track how many packages have had patches submitted; and to ask for help in submitting patches to all these packages (discourse post).
I urge those that submit patches to review them and make sure they make sense for the context of the project they are in. I did not ensure that these patches were well made or made sense for the full support window of each package, I only ensured that they worked for ghc-9.12.4 with my MONR changes.
When making your patches, bear the following tidbits in mind:
The aim is to remove all definitions of return and mappend, and make sure all definitions of pure and (<>) don't simply refer to return and mappend
Semigroup was introduced in base-4.9.0.0, and only became a superclass of Monoid in base-4.11.0.0. Thus patches for packages that cover that range of versions must add CPP to remove the mappend definition after base-4.11.0.0
Applicative was introduced as a superclass of Monad in base-4.8.0.0. Thus patches for packages that cover that range of versions must add CPP to remove the return definition after base-4.8.0.0
Ideally even canonical definitions (of return = pure and mappend = (<>)) should be removed so that in later stages we don't have more breakage
If you do help me patch these (thank you!) let me know so I can tick an item off the list and link to the patch for further tracking
(addendum: removing canonical definitions is also a good idea as we go. for a previous search for these changes, please see rhendric's comment on the original proposal)
Packages for general patching (I'll tick when there's a release on hackage!):
In #328 we accepted the proposal to eventually remove
returnfromMonadandmappendfromMonoid. I've been making progress on the implementation here, and thought I should check how much of clc-stackage was broken.In short, a lot of it.
The good news is I have patches for all ~148 packages that are needed to get stackage back on its feet.
The bad news is that these patches now have to be submitted to each package, reviewed, accepted, and uploaded to hackage to ensure a smooth transfer.
This is why I've made this issue: to track how many packages have had patches submitted; and to ask for help in submitting patches to all these packages (discourse post).
Here is a huge file with the vast majority of the patches; there are 24 or so not included in this file I will manage by myself (since I was doing them fully manually before a certain point): https://gist.github.com/L0neGamer/3df4008fd458030cf3cf2c374ccfa3ec
I urge those that submit patches to review them and make sure they make sense for the context of the project they are in. I did not ensure that these patches were well made or made sense for the full support window of each package, I only ensured that they worked for
ghc-9.12.4with my MONR changes.When making your patches, bear the following tidbits in mind:
returnandmappend, and make sure all definitions ofpureand(<>)don't simply refer toreturnandmappendbase-4.9.0.0, and only became a superclass of Monoid inbase-4.11.0.0. Thus patches for packages that cover that range of versions must add CPP to remove themappenddefinition afterbase-4.11.0.0base-4.8.0.0. Thus patches for packages that cover that range of versions must add CPP to remove thereturndefinition afterbase-4.8.0.0return = pureandmappend = (<>)) should be removed so that in later stages we don't have more breakage(addendum: removing canonical definitions is also a good idea as we go. for a previous search for these changes, please see rhendric's comment on the original proposal)
Packages for general patching (I'll tick when there's a release on hackage!):
Packages I plan to patch/solve somehow: