Skip to content
CAI
Software that uses CAICheck a score

G-Research/HeterogeneousCollections

54.9

Weak · 3 October 2026

442

lines of production code

F#

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

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.