runtimeverification / runtimeverification/haskell-backend

Get rid of mapKeys and mapKeysAndValues if possible

Open
#3,476 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

investigation Serokell
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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.