docs/rfcs/0001-rfc-template.md
- Feature Name: A unique name for the feature
- Start Date: Today's date (YYYY-MM-DD)
- Change Type: Breaking / Non-Breaking (delete as appropriate)
- RFC Dependencies: List any RFCs that this one depends on.
- RFC PR: Leave Empty
- Enso Issue: Leave Empty
- Implemented: Leave blank, this will be filled with the first version of the relevant tool where it is implemented.
A one-paragraph, high-level summary of the proposal.
Why should we make this change? What use-cases does it support? What benefits does it bring to the ecosystem? Explain why the status quo is insufficient or not ideal.
Explain the proposal as if teaching the feature(s) to a newcomer to Enso. This should usually include:
For implementation-oriented RFCs, this section should focus on how contributors to the project should think about the change, and give examples of its concrete impact. For policy-level RFCs, this section should provide an example-driven introduction to the policy, and explain its impact in concrete terms.
This is the technical portion of the RFC and should be written as a specification of the new feature(s). It should provide a syntax-agnostic description of the planned feature, and include sufficient detail to address the following points:
This section should be written in comprehensive and concise language, and may include where relevant:
A description of why we should not do this. Write this section as if you are picking apart your proposal.
A few paragraphs addressing the rationale for why this design is the best possible design for this feature in its design space. It should address how the proposed design resolves the motivating factors.
A few paragraphs addressing alternative designs for the feature, and the reasons for not choosing them.
A paragraph or two addressing the impact of not including this feature.
This section should address any unresolved questions you have with the RFC at the current time. Some examples include: