G-Research/HeterogeneousCollections
54.9
Weak · 3 October 2026
442
lines of production code
F#
primary language
2
measurements over time
What this system is
This system is a .NET Standard 2.0 library for F\# that provides type-safe heterogeneous collections, including HList, DiffList, HUnion, and SumOfProducts. It enables developers to manipulate lists and unions with mixed element types while maintaining compile-time type safety. The project includes a comprehensive test suite and enforces code formatting via a pre-push hook.
Features
Initial release of HeterogeneousCollections library
This change introduces the HeterogeneousCollections library for F\#, providing type-safe heterogeneous collections such as HList (heterogeneous lists) and DiffList (which supports append operations). The package targets netstandard2.0 for broad compatibility and includes documentation, contributing guidelines, and build infrastructure.
(repo-wide) · high confidence
Introduce heterogeneous collection types (HList, DiffList, HUnion, SumOfProducts, HListT)
This release adds a suite of type-safe heterogeneous collections to the HCollections namespace. Users can now use HList for lists with mixed element types, DiffList for efficient concatenation of heterogeneous lists, HUnion for type-safe discriminated unions, SumOfProducts for unions of heterogeneous lists, and HListT for lists pairing heterogeneous values with a common homogeneous value. Supporting types like TypeList and TypeListList enable type-level list manipulation, while HListFolder utilities simplify folding over these structures.
HeterogeneousCollections · high confidence
Behavioural changes
Pre-push hook enforces Fantomas code formatting
A new pre-push hook has been added to the repository that automatically checks if the codebase is formatted using Fantomas before allowing a push. If the formatting check fails, the push is blocked and a message is displayed suggesting the user run 'dotnet tool run fantomas .' to fix the formatting.
hooks · high confidence
Test coverage
Initial test suite for heterogeneous collection types
Added comprehensive unit tests for the library's core heterogeneous data structures, including HList, HListT, TypeList, DiffList, HUnion, and SumOfProducts. The new test files verify type-list conversions, list manipulation operations (such as cons, append, head, tail, and fold), union splitting and extension, and sum-of-products handling. Additionally, surface tests were added to ensure the public API remains stable and fully documented.
HeterogeneousCollections.Test · high confidence
Dependencies
Initial project structure and dependency configuration
The repository introduces the core library, test suite, and analyzer configuration. The main library targets .NET Standard 2.0 and includes a new DiffList component alongside existing HList, HUnion, and SumOfProducts types, depending on TypeEquality 0.4.2. The test project targets net6.0 and net8.0, utilizing NUnit 4.1.0, FsUnit 6.0.0, and the ApiSurface tool for surface testing. Additionally, a dedicated analyzer project is added to manage G-Research.FSharp.Analyzers.
(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 55 → 55 (-0.3)
- Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.
Lenses
- Code Health 100 → 100 (+0.0)
- Architecture 69 → 69 (+0.0)
- Maturity 32 → 32 (+0.0)
- Readiness 76 → 76 (+0.0)
- Security 83 → 79 (-3.4)
Resolved (1)
- Documentation: no usage examples (README.md)
New (1)
- Documentation: no project overview (README.md)
Changes since last survey
- 1 commits — 1 feature/other, 0 fixes
By area
- .github/workflows — 1 commit
Notable commits
- change: Bump github/codeql-action/upload-sarif from 4.38.0 to 4.38.2 (#87)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
G-Research/HeterogeneousCollections 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 18fc1c87c12c23612c34fad88f9786b54cdbdce7 — 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.