Skip to content
CAI
Software that uses CAICheck a score

Thorium/Linq.Expression.Optimizer

55.4

Adequate · 2 October 2026

1.4k

lines of production code

F#

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Linq.Expression.Optimizer is a .NET library that simplifies and optimizes System.Linq.Expressions trees through techniques like constant folding and boolean algebra reduction. The project has been modernized to support multiple .NET versions, including .NET 8 and .NET 10, and utilizes a robust test suite with xUnit and property-based testing to ensure correctness across complex query patterns.

Features

Linq.Expression.Optimizer v1.0.6 introduces expression tree optimization

This release adds the core optimization engine for System.Linq.Expressions, enabling users to simplify and optimize LINQ expression trees. The new \OptimizeExtension\ API allows calling \.Optimize()\ on expressions to apply reductions such as constant folding (e.g., simplifying \7 \> 8\ to \False\), boolean algebra simplifications, and the elimination of unused anonymous type members and empty code blocks. The optimizer also handles structural comparisons of member accesses and parameters to ensure correctness across different expression instances.

src/Code · high confidence

Test coverage

Migrated test suite to xUnit and FsUnit with expanded query coverage; Updated test project dependencies and removed legacy configuration.

Dependencies

Linq.Expression.Optimizer version bump to 1.0.34 and multi-targeting expansion

The Linq.Expression.Optimizer library has been updated to version 1.0.34. The project now targets .NET Framework 4.8.1, .NET Standard 2.0, .NET Standard 2.1, .NET 8, and .NET 10, requiring FSharp.Core version 8.0.301 or higher. The assembly metadata and build configuration have been updated to reflect these changes, including the removal of legacy binding redirects in favor of the new framework-specific dependencies.

src/Linq.Expression.Optimizer · high confidence

Migrated build system from Paket/FAKE 5 to .NET SDK/FAKE 6

The project's build infrastructure has been upgraded from the legacy Paket bootstrapper and FAKE 5 to the modern .NET SDK tooling and FAKE 6. This change replaces the manual Paket restore and FAKE execution steps in \build.cmd\ and \build.sh\ with \dotnet tool restore\ and \dotnet fake run\. The \build.fsx\ script has been rewritten to use FAKE 6's functional API (e.g., \Target.create\, \DotNet.build\) and references FAKE 6.1.4 packages, while the solution file has been updated to target Visual Studio 17. This migration simplifies the build process by leveraging the .NET CLI and removes the dependency on the Paket bootstrapper.

(repo-wide) · high confidence

Updated .NET targets and F\# dependencies

The Linq.Expression.Optimizer project now targets netstandard2.0, netstandard2.1, net8.0, and net10.0, replacing older frameworks. FSharp.Core has been upgraded to version 8.0.301, and the build system now includes FSharp.NET.Sdk and FSharp.Compiler.Tools. The test suite has migrated from NUnit to xUnit, adding FsCheck.Xunit, FsUnit.xUnit, and BenchmarkDotNet for performance testing.

(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 56 → 55 (-0.9)
  • Rubric changed (rubric-2026.09.13 → rubric-2026.10.1) — scores are not directly comparable.

Lenses

  • Code Health 51 → 51 (-0.0)
  • Architecture 99 → 96 (-3.5)
  • Maturity 50 → 49 (-1.4)
  • Readiness 52 → 49 (-2.4)
  • Security 98 → 98 (+0.0)
  • Performance 90 (new)

Resolved (2)

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

Changes since last survey

  • 1 commits — 1 feature/other, 0 fixes

By area

  • docs/content — 1 commit

Notable commits

  • change: fsharp-refactor code clean-up.

Architecture

  • Containers 0 added · 0 removed · contexts 1 added · 0 removed · edges 0 added · 0 removed

Added bounded contexts (1)

  • Linq.Expression.Optimizer.Tests

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

Survey your own repository

Thorium/Linq.Expression.Optimizer 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 2 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 772cb5ff3d26bf4a59165d2716bd9abcfc97afd5 — 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-351388015767.