Add a Testable instance for Either
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Stale
- Domain
- testing
Research direction
Start by reading the existing Testable instances in purescript-quickcheck and the Either type and note usage shown in the issue. Determine which instance or instances are needed to make Either String Unit usable with the testing machinery, then check the project’s tests for the expected behavior. Done means the instance supports the shown composition pattern and has tests covering it.
Written by the indexing model from the issue text.
Description
Result is not a very composable data type, which makes it clunky to work with. If we add a Testable instance for Either String Unit we can use the whole machinery around the Either type and make testing a much more pleasant experience.
Contrived example of pleasant experience:
p :: Array String -> Either String Unit
p a = do
i <- note "Couldn't find hello." (elemIndex "hello" a)
if mod i 2 > 0
then Left "hello isn't on an index divisible by two."
else Right unit
In my opinion this experience becomes pleasant because I can use do-notation, note and a load of other niceties.
If you think this is a good idea I can implement the instance(s) needed and make a PR.
- Dominant language
- PureScript
- Stars
- 108
- Forks
- 42
- Avg merge
- 2d 23h
- Merged PRs (30d)
- 1
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- No 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 purescript/purescript-quickcheck
-
Difficulty 3/5 1-2 days Newbie friendliness 35/100
purescript/purescript-quickcheck#136 · 1 comment ·
-
Lazy List Arbitrary InstancePossibly taken @eviefp claimed this 2206 days ago. Opentype: enhancement
Difficulty 3/5 1-2 days Newbie friendliness 20/100
purescript/purescript-quickcheck#111 · 2 comments · 2 reactions ·
-
type: documentation
Difficulty 1/5 Under an hour Newbie friendliness 55/100
-
purs-0.15 type: breaking change
Difficulty 5/5 Over a week Newbie friendliness 20/100
purescript/purescript-quickcheck#104 · 12 comments ·
-
ShrinkingOpentype: enhancement
Difficulty 5/5 Over a week Newbie friendliness 15/100
purescript/purescript-quickcheck#103 · 6 comments · 4 reactions ·
All issues in purescript/purescript-quickcheck
Similar issues
-
[prefer-expect-resolves] autofix leaves a stray ")" when the awaited expression is parenthesizedOpen
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
jest-community/eslint-plugin-jest#2052 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
johanhaleby/occurrent#1505 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
jeanibarz/knowledge-base-mcp-server#1262 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
future-agi/future-agi#4092 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day