google / google/codeworld

New GHC Extension, -XOverloadedApplication

Open
#88 2 comments 0 reactions 0 assignees View on GitHub
discussion
Dominant language
Haskell
Stars
1.3k
Forks
201
PR merge metrics
No merged PRs in 30d

Description

Ideally, we could tweak GHC to make a few changes that support CodeWorld's dialect of Haskell:
1. `NoCurriedOperators`: The expression `x + y` should desugar to `(+)(x, y)` instead of `(+) x y`. Operator sections remain unchanged.
2. `ApplicationRequiresParentheses`: Makes it an error to write `f x`, requiring `f(x)` instead. Tuples should not require additional parentheses. Also pretty-prints error messages as `f(x)` instead of `f x` or `f (x)`, and disables the logic that uses phrases like "in the first parameter" in error messages.

Contributor guide

Open the contributing guide

Research direction

Start by investigating GHC's parsing, desugaring, pretty-printing, and error-message handling for the two proposed extensions. Define how each requested behavior should work, including operator sections, tuples, and parameter wording; the issue names no files or tests, so implementation entry points must be identified first.

Written by the indexing model from the issue text.

Assessment

Tech stack
haskell
Domain
compilers
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.