Skip to content
CAI
Software that uses CAICheck a score

ieviev/fsil

58.2

Adequate · 3 October 2026

790

lines of production code

F#

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Fsil is a .NET 10 library providing functional collection utilities, including iteration, mapping, and folding operations for various data structures. It extends these core capabilities with type classes for default values and item access, alongside a companion IO module for safe file system interactions. The system emphasizes zero-cost generic design and robust error handling through Result types.

Features

New Fsil.IO library for file system operations

A new \Fsil.IO\ module has been added to the \src/fsil.io\ project, providing a set of static helper methods for common file system tasks. This includes reading and writing files (bytes, strings, JSON), directory enumeration, path manipulation (existence, directory name, filename, extension), and environment variable access. The library wraps standard .NET \System.IO\ and \System.Text.Json\ calls, returning \Result\ types to handle potential exceptions gracefully, and is conditionally compiled for non-Fable targets.

src/fsil.io · high confidence

Behavioural changes

Library refactored into fsil.fs with expanded type classes and benchmark updates

The core library implementation has moved from Library.fs to fsil.fs, introducing new type classes for Default, DefaultWith, IsEmpty, Length, and Item alongside the existing Iterate and Map capabilities, while the benchmark suite has been updated to include new performance comparisons for Fold, Forall, and Exists operations.

src/fsil · high confidence

Library restructured for .NET 10 with updated documentation and API simplifications

The project has migrated its target framework to .NET 10.0 and replaced the legacy .sln file with a new .slnx solution structure. The library's public API has been simplified: custom type implementations for operations like \Map\ and \Iterate\ no longer require internal tuple-based helper arguments, making them easier to define. Additionally, a new \IterateWhile\ method has been added to support conditional iteration. The documentation has been significantly expanded to clarify the library's zero-cost generic design, provide examples for various collection types, and introduce a \flatten\ utility function.

(repo-wide) · high confidence

Test coverage

Added comprehensive test suite for Fsil collection operations

Added a new test file (tests.fs) covering core Fsil collection behaviors, including iteration (iter, iteri), mapping (map, mapi), length checks, emptiness checks, and tree-specific operations like folding and mapping. The tests also validate quantifier functions (forall, exists) across trees, arrays, and optional values, as well as safe access patterns for dictionaries (try\_item) and results (is\_ok, value).

src/fsil.test · high confidence

Dependencies

fsil library major version bump to 3.0.0 with .NET 10 support

The core fsil library has been updated to version 3.0.0, marking a significant release. The project now targets .NET 10.0, with the benchmarks project also upgraded from .NET 9.0 to .NET 10.0. A new test project (fsil.test) has been added, configured for .NET 10.0 and utilizing Expecto version 10.2.3 for testing. Additionally, the main library project has been refactored to compile from 'fsil.fs' instead of 'Library.fs', and the content packaging for Fable has been adjusted to include specific file types.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 58 → 58 (+0.6)
  • Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.

Lenses

  • Code Health 95 → 95 (+0.0)
  • Architecture 100 → 100 (+0.2)
  • Maturity 57 → 57 (+0.0)
  • Readiness 36 → 36 (+0.0)
  • Security 100 → 100 (+0.0)
  • Performance 95 (new)

Resolved (2)

  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)

New (2)

  • Documentation: no installation or build instructions (readme.md)
  • Documentation: no project overview (readme.md)

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

ieviev/fsil was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 3 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 6e6a1b0c34e500e687a7187323176b4a9c9ec202 — the exact code this score is about.
  • Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-4f4226d619ea.