Open endgame opened 2 years ago
@Ericson2314 Let me know if you're happy with this plan, and I will begin making PRs.
@endgame this one I have more mixed feelings about because monoid-subclasses
is such overkill for our use-case.
Also, if we we had more "non-empty" data types, like https://github.com/haskell/containers/pull/616, we could do this in a more "type directed" way which would be more satisfying.
(If you have spare cycles, I think they would be more usefully spent getting https://github.com/haskell/containers/pull/616 over the finish line. I hope the conflicts are not too bad! The only thing remaining before that I remember was dealing with some perf regressions, which I think is just a matter of tweaking the inlining.)
@endgame this one I have more mixed feelings about because
monoid-subclasses
is such overkill for our use-case.
It's not that big a package, and its library component has a pretty reasonable dependency footprint. Regardless, I opened https://github.com/blamario/monoid-subclasses/pull/50 .
There's a comment at the top of
Data.Monoid.DecidablyEmpty
which reads:-- TODO upstream somwhere else?
That "somewhere else" already exists:
Data.Monoid.Null
frommonoid-subclasses
.I had a look at the instances it provides, and it is missing the following ones:
This would solve #42 but is too much work to hold up GHC 9.2 support. Tasks, as I see them:
monoid-subclasses
and releasedependent-map
and releaseData.Monoid.DecidablyEmpty.DecidablyEmpty
with type alias, setisEmpty = Data.Monoid.Null.null
, deprecate both, and releaseData.Monoid.DecidablyEmpty
.None of this seems particularly controversial. We might want
monoid-subclasses
anyway because of #37. It's quite a light package, so depending on it fromdependent-map
shouldn't be a problem either.