Long term solution for printing "Outcome Values" in the top level.
Nobody has claimed this yet.
- Dominant language
- OCaml
- Stars
- 10.3k
- Forks
- 438
- PR merge metrics
- No merged PRs in 30d
Description
For now, @kayceesrk found that it will be very easy to write our own outcome printer by simply forking the upstream ML one. (Or at least we can get it to a very usable state quickly). Longer term, we decided the best approach is to create a general purpose converter from "outcome tree" to "parse tree", where certain nodes in the parse tree would have some kind of placeholder to represent nodes in the outcome tree which could not be represented in a parse tree. (Things like ... for large objects). For those, we could chose to convert them as ppx extension points [%largeObject].
The benefit here, is that the top level printer will always be kept in sync with your parser/printer. The downside is that it will take longer to do it this way, so we are making this issue to track the implementation long term.
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
The issue names no files or tests; start by locating the existing upstream ML outcome printer and this project's parser/printer. Trace how outcome trees and parse trees are represented, then define the general-purpose conversion boundary. Done means the top-level printer stays in sync and unrepresentable outcome nodes can use placeholders such as ppx extension points.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ocaml
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100