runtimeverification / runtimeverification/haskell-backend
Get rid of mapKeys and mapKeysAndValues if possible
Nobody has claimed this yet.
- Dominant language
- Haskell
- Stars
- 224
- Forks
- 43
- PR merge metrics
- No merged PRs in 30d
Description
@jberthold pointed out that mapKeys and mapKeysAndValues are both somewhat risky, since things will go somewhat unpredictably if they're passed non-injective functions. I believe mapKeys is only applied to injective functions, and only in test code, so that's probably not a high priority. It's less obvious to me whether mapKeysAndValues is only applied to injective transformations, due to the renaming machinery in mapVariables.
Contributor guide
No contributing guide indexed for this repository
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.
Research direction
Search the Haskell codebase for uses and definitions of mapKeys, mapKeysAndValues, and the renaming machinery in mapVariables. Read the discussion in pull request #3461 first, then determine whether the transformations are injective and whether the helpers can be removed; done means the risky helpers are no longer needed without breaking their callers.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- backend
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100