louthy/language-ext

C# pure functional programming framework - come and get declarative!

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 4 minutes ago
Added to GitGenius on September 9th, 2026
Created on November 16th, 2014
Open Issues & Pull Requests: 15 (+0)
GitHub issues: Enabled
Number of forks: 449
Total Stargazers: 7,082 (+0)
Total Subscribers: 184 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 5.7 hours
Mean response time: 105.8 days
90th percentile: 468.9 days
Tracked items: 109

How this project is maintained

Around half of the issues opened in the past year never receive a reply. Only 17% of issues opened in the past year have been closed. Three people close 93% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 10
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 704 days
Stale 30+ days: 10
Stale 90+ days: 10

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • bug (13)
  • v5 (11)
  • enhancement (6)
  • examples / documentation (4)
  • v4 (3)
  • idea (1)
  • news / info (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Language-ext is a pure functional programming framework for C# that extends the language with functional constructs and patterns.

The library addresses the challenge of writing robust, maintainable C# code by steering developers toward declarative and pure functional programming rather than imperative approaches. It accomplishes this by leveraging C# language features to provide functional abstractions including monads, functors, applicatives, and higher-kinded types. The framework includes immutable collections, optional and alternative value monads, state-managing monads, parser combinators, functional streams, and atomic concurrency primitives. It also offers functional effects and IO abstractions to make common operations pure and testable, along with traits and value traits for ad-hoc polymorphism.

Teams working on large codebases where long-term maintenance and cognitive load are concerns should consider this tool. It suits projects where reducing hidden complexity and embracing declarative patterns would provide tangible benefits. The library is distributed across multiple NuGet packages, including a core package, specialized packages for streaming, parser combinators, reactive extensions support, and F# interoperability. The F# interop package enables seamless conversion between language-ext types and their F# equivalents, making it useful for teams working across both languages.

The project maintains active engagement with the functional programming community through the author's published writing on functional techniques. Development activity shows consistent attention to the codebase with regular updates and refinements to the framework's abstractions and capabilities. The project provides comprehensive API documentation and maintains a collection of documented examples and use cases within the issue tracker to help developers understand and apply the framework's patterns.