scala / scala/scala-parser-combinators

Consider providing typesafe structural equality for A ~ B by default

Open
#477 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

help wanted
Dominant language
Scala
Stars
679
Forks
131
Avg merge
8h 25m
Merged PRs (30d)
3

Description

given [A, B](using CanEqual[A, A], CanEqual[B, B]): CanEqual[A ~ B, A ~ B] = CanEqual.derived

This would allow pattern-based productions to compile in the presence of strict equality.

Example: https://github.com/lucproglangcourse/expressions-scala/blob/main/src/main/scala/CombinatorParser.scala

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

Start with the proposed CanEqual[A ~ B, A ~ B] definition and the linked CombinatorParser.scala example. Trace how strict equality affects pattern-based productions and identify the appropriate implementation and test locations. Done means the relevant pattern-based productions compile under strict equality without weakening the equality checks.

Written by the indexing model from the issue text.

Assessment

Tech stack
scala
Domain
compilers
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.