fsharp-idiom-review
F# idiom review
The compiler accepts C#-shaped F#. Human reviewers then ask for a different shape. Review evidence ranks idiomatic readability and collection efficiency among the strongest categories of human comments on agent F# code. Codex and opencode sessions also hold 5 user corrections on this subject, for example: "can use a match statement instead of a mutable".
Apply this checklist to your own diff before you finish. It is most important when you port C# code, because a line-by-line port keeps the C# shape. For domain modeling (constrained types, private constructors, unions for states), use parse-dont-validate. This skill does not repeat it.
Checklist
Each item shows the shape to find and the shape to use. references/EXAMPLES.md has longer examples and the exceptions.
- Record, not tuple, for named results. A function that returns or stores three or more values, or two values of the same type, returns a record.