Skip to content

Census: 91 of 379 .idr files have own compile defects (47 parse failures) — revealed by fixing the module-1 stall #204

Description

@hyperpolymath

Summary

A per-file idris2 --find-ipkg --check census of all 379 .idr files under src/,
with each failure attributed to own-defect vs import-inherited:

count
clean 233
failing — own defect 91
failing — inherited from an import only 52
unattributable 0
stalls (do not terminate) 3

Of the 91 own-defect files, 47 are parse failures.

Dominant error classes among own defects:

  • 31 — Couldn't parse declaration
  • 16 — Couldn't parse any alternatives
  • 8 — When unifying
  • 2 — Keyword 'public' is not a valid start to a declaration
  • singletons: ffi_resource_new_handle is already defined, ffi_lru_new is already defined, Name Proven.SafeCron.minuteBounds is private, Multiple solutions found in search of, levelorder is not total, isTemplateSafe is not total, Expected 'where'

Concentration: Proven (20), Proven.FFI (13), then 2 each in SafeTOML, SafeHtml,
SafeHeader, SafeCookie, SafeContentType, SafeArgs.

⚠ These are authoring defects, not sweep damage

The parse-failure cluster looks at first glance like it could be substitution damage. It
is not. Sampling src/Proven/FFI/Buffer.idr:

ffi_buffer_write buf data = ...

data is a reserved keyword in Idris2. That file is clean vs HEAD — no sweep has
touched it. This appears to be the dominant sub-class of the parse failures, and it means
remediation is ordinary source fixing, not a revert.

Why this was invisible

The package build stopped at module 1 of 300 (non-terminating elaboration) and was
cancelled at the CI timeout, so no diagnostic was ever emitted for any of these files.
The whole set was behind a VOID gate.

Data

  • .claude/forensics/proven-idr-file-census-2026-08-27.txtrc|elapsed|file|firstError, 379 rows
  • .claude/forensics/proven-idr-defect-attribution-2026-08-27.txtOWN|IMPORT|NOLOC per failing file

Census taken against the working tree; 375/379 files identical to HEAD c83c7bf3.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions