Impossible to create an instance of the Costrong class
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Stale
- Domain
- backend
Research direction
Start by reading the Costrong class and its unfirst method; the issue gives no file or test paths, so locate them in the repository. Compare the strict definition with the proposed Lazy constraint and consider the naming or library scope raised in the issue. Done means establishing whether the proposed approach is viable and agreeing on the API direction.
Written by the indexing model from the issue text.
Description
The reason that Function and other types cannot be an instance of Costrong is that PureScript is a strict evaluation.
unfirst :: forall a b c. p (Tuple a c) (Tuple b c) -> p a b
That is, when we want to loop over c, it is impossible to set the initial value of c
How to modify it may be debatable, but I found the following solution
unfirstLazy :: forall a b c. Lazy c => p (Tuple a c) (Tuple b c) -> p a b
unfirstLazy f a = fst $ f $ Tuple a $ go
where
go = snd $ f $ Tuple a $ defer \_ -> go
Also, since this is not "Co" Strong, it might be better to name the class differently, for example CostrongLazy, or create a new library.
Thanks to natefaubion for sharing this issue on PureScript discord server.
- Dominant language
- PureScript
- Stars
- 34
- Forks
- 13
- Avg merge
- 3d 10m
- 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-profunctor
-
Difficulty 4/5 3-5 days Newbie friendliness 28/100
purescript/purescript-profunctor#49 · 1 comment ·
-
status: needs more info
Difficulty 5/5 Over a week Newbie friendliness 25/100
purescript/purescript-profunctor#32 · 1 comment ·
-
Add Choice CostarOpentype: enhancement
Difficulty 5/5 Over a week Newbie friendliness 20/100
All issues in purescript/purescript-profunctor
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 80/100
Maintainers usually reply within 1 day
-
bug good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
milind-soni/OpenMausBot#5829 ·
Maintainers usually reply within 1 day