reasonml / reasonml/reason

Conjunctive polymorphic variant type prints and parses weirdly

Open
#1,829 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

KIND: FEATURE REQUEST Printer
Dominant language
OCaml
Stars
10.3k
Forks
438
PR merge metrics
No merged PRs in 30d

Description

type t = [ `Something of int & string ]

is converted to

type t = [ | `Something(int) &(string)];

You can add a space after &, but the parens are apparently required for it to parse. I find this syntax somewhat less than intuitive.

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 by reproducing the ML-to-Reason conversion shown in the issue, including parsing the generated Reason syntax. Trace how conjunctive polymorphic variant types are printed and parsed, then confirm the intended spacing and parenthesization with tests; the issue is done when the output is consistent and parses as expected.

Written by the indexing model from the issue text.

Assessment

Tech stack
ocaml
Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.