fsharp-signature-files

Installation
SKILL.md

F# signature files

A .fsi file is the contract of its .fs file. A value or type that is not in the .fsi is hidden from every later file and every other assembly. A type that the .fsi declares with no body (type Email) hides its fields and cases.

The compiler can write a .fsi for you, but that output repeats every public member. It hides nothing. The work is to remove what callers do not use.

Build time can also improve. Later files type-check against the .fsi, not the .fs, so graph-based type checking can check them in parallel with the implementation. Measure this before you claim a speed-up. See optimize-fsharp-typecheck-graph.

Steps

  1. Record the public surface before the change. Build the library and run:
Installs
14
GitHub Stars
21
First Seen
Oct 14, 2026