Getting rid of `Data.Monoid.DecidablyEmpty`
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
Research direction
Start by reading Data.Monoid.DecidablyEmpty and comparing its API with Data.Monoid.Null from monoid-subclasses. Check the dependent-map instance and then follow the listed migration steps: update the alias and deprecations, remove the old module, and release the affected packages.
Written by the indexing model from the issue text.
Description
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 from monoid-subclasses.
I had a look at the instances it provides, and it is missing the following ones:
instance MonoidNull a => MonoidNull (Identity a)
instance MonoidNull a => MonoidNull (WrappedMonoid a)
instance (Ord a, Bounded a) => MonoidNull (Max a)
instance (Ord a, Bounded a) => MonoidNull (Min a)
instance MonoidNull (Proxy a)
instance MonoidNull a => MonoidNull (Const a b)
instance MonoidNull a => MonoidNull (Down a)
instance MonoidNull p => MonoidNull (Par 1 p)
instance MonoidNull (U1 p)
instance MonoidNull (f p) => MonoidNull (Rec1 f p)
instance MonoidNull (f p) => MonoidNull (M1 i c f p)
instance MonoidNull c => MonoidNull (K1 i c p)
instance (MonoidNull (f p), MonoidNull (g p)) => MonoidNull ((f :*: g) p)
instance (MonoidNull (f p), MonoidNull (g p)) => MonoidNull ((f :.: g) p)
instance (...) => MonoidNull (a, b, c, d, e)
-- Should go to dependent-map
instance GCompare k => MonoidNull (DMap k v)
This would solve #42 but is too much work to hold up GHC 9.2 support. Tasks, as I see them:
- Add the missing instances to
monoid-subclassesand release - Add the missing instance to
dependent-mapand release - Replace
Data.Monoid.DecidablyEmpty.DecidablyEmptywith type alias, setisEmpty = Data.Monoid.Null.null, deprecate both, and release - Remove deprecated
Data.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 from dependent-map shouldn't be a problem either.
- Dominant language
- Haskell
- Stars
- 17
- Forks
- 17
- Avg merge
- 9h 32m
- Merged PRs (30d)
- 1
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from reflex-frp/patch
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
reflex-frp/patch#52 ·
-
Difficulty 5/5 Over a week Newbie friendliness 18/100
reflex-frp/patch#37 · 9 comments ·
-
Difficulty 3/5 1-2 days Newbie friendliness 35/100
reflex-frp/patch#11 · 1 reaction ·
-
Difficulty 5/5 Over a week Newbie friendliness 15/100
reflex-frp/patch#4 · 15 comments ·
All issues in reflex-frp/patch
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
halogenandtoast/ArkhamHorror#5805 ·
-
Difficulty 1/5 1-3 hours Newbie friendliness 88/100
objectionary/phino#1724 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 1-3 hours Newbie friendliness 82/100
tomjaguarpaw/bluefin#108 ·
-
infrastructure
Difficulty 1/5 Under an hour Newbie friendliness 92/100
alunduil/collection-json.hs#373 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
digital-asset/daml#23439 ·
Maintainers usually reply within 1 day