levineuwirth.org/build
Levi Neuwirth 725fa17f6a Tighten partial patterns and switch to strict file reads in build/
- Stats.hs: median uses (!!) directly after the empty-case equation,
  dropping the unreachable empty-fallback arm.
- Stats.hs + BibExtras.hs: switch lazy readFile to strict readFile'
  (System.IO). Lazy IO leaves handles open until the value is forced;
  errors surface at unpredictable points and the em-dash fallback in
  Stats can hide real I/O failures. Strict reads fail at the read.
- Stability.hs: stabilityFromDates uses 'last dates' directly, since
  the (newest:_) pattern guarantees non-empty input.
  versionHistoryRangeField and versionHistoryRangeEndField bind the
  matched list as 'es' and call 'last es', dropping the
  reconstruction of (newest : more) just to call last on it.
- Tags.hs: parentOf is a 3-arm case (\[\], \[_\], segs) instead of a
  length-based guard around 'init segs'.
- Catalog.hs: renderGroup re-orders so the structurally-guaranteed
  (e:_) arm is matched first; the empty arm stays as a coverage stub
  with a comment noting it's unreachable per groupBy's contract.
- Utils.hs: trim uses dropWhileEnd instead of double-reverse.

All sites were runtime-safe before; the changes make the safety
structural and shorter to read.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 15:08:47 -04:00
..
Filters Inline code reference previews 2026-05-02 10:40:43 -04:00
Authors.hs more prominent related pages 2026-05-03 14:01:14 -04:00
Backlinks.hs major visual changes - dingbats, footer, etc 2026-04-17 12:48:22 -04:00
BibExtras.hs Tighten partial patterns and switch to strict file reads in build/ 2026-05-07 15:08:47 -04:00
Catalog.hs Tighten partial patterns and switch to strict file reads in build/ 2026-05-07 15:08:47 -04:00
Citations.hs Navigation refactor 2026-04-19 14:35:41 -04:00
Commonplace.hs audit: Haskell build system correctness + Patterns.hs + Stats blaze rewrite 2026-04-10 17:41:13 -04:00
Compilers.hs Spec dilemma 2026-05-01 21:22:01 -04:00
Contexts.hs Spec dilemma 2026-05-01 21:22:01 -04:00
Dingbat.hs major visual changes - dingbats, footer, etc 2026-04-17 12:48:22 -04:00
Filters.hs Inline code reference previews 2026-05-02 10:40:43 -04:00
Main.hs initial deploy! whoop 2026-03-17 21:56:14 -04:00
Now.hs Current rework 2026-04-26 19:42:47 -04:00
Pagination.hs Navigation refactor 2026-04-19 14:35:41 -04:00
Patterns.hs Spec dilemma 2026-05-01 21:22:01 -04:00
Photography.hs more prominent related pages 2026-05-03 14:01:14 -04:00
SimilarLinks.hs major visual changes - dingbats, footer, etc 2026-04-17 12:48:22 -04:00
Site.hs Add robots.txt and sitemap.xml; tidy essay-route prefix-strip 2026-05-07 15:08:33 -04:00
Stability.hs Tighten partial patterns and switch to strict file reads in build/ 2026-05-07 15:08:47 -04:00
Stats.hs Tighten partial patterns and switch to strict file reads in build/ 2026-05-07 15:08:47 -04:00
Tags.hs Tighten partial patterns and switch to strict file reads in build/ 2026-05-07 15:08:47 -04:00
Utils.hs Tighten partial patterns and switch to strict file reads in build/ 2026-05-07 15:08:47 -04:00