haskellfoundation / haskellfoundation/haskell-2010-revised-report
Mutually Recursive Modules
- Dominant language
- Typst
- Stars
- 20
- Forks
- 5
- Avg merge
- 4d 18h
- Merged PRs (30d)
- 6
Description
In section 5, the report says that mutually recursive modules must be supported:
> Modules may be mutually recursive
but then doesn't say how to use it:
> separate compilation of mutually recursive modules may require that imported modules contain additional information so that they may be referenced before they are compiled
Saying that a feature must be supported but not explaining how to use it is bizarre and probably should be changed. Here's three different options on how this could be changed:
* A) Change the wording to say that implementations, may but are not required to support mutually recursive modules
* B) Codify GHC's `.hs-boot` files into the report
* C) Say that implementations must fully support mutually recursive modules and say that GHC's implementation is buggy
In [Hazy](https://github.com/superstar64/hazy), I currently fully support mutual recursive modules without any additional hassle and completely ignore `.hs-boot` files, so I would prefer to avoid B.
Contributor guide
Research direction
Start with section 5 of the report and review the wording about mutually recursive modules alongside the discussion of separate compilation and GHC's .hs-boot files. Determine which of options A, B, or C the report should adopt, then update the relevant report text so the support requirement and usage expectations are explicit.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 42/100