IBM/fp-go
Functional programming library for Go 1.24+, inspired by fp-ts. Uses generic type aliases for a clean, composable API. Provides Option, Either, Result, IO, IOResult, Reader, and ReaderIOResult monads, plus optics (Lens, Prism, Traversal) for immutable data manipulation. Supports Functor, Applicative, and Monad abstractions with do-notation-style observed · 2026-10-17
Health v2 · maintenance only
92/100
- Activity 100
- Release rhythm 87
- Longevity 85
How is this computed?
round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10) — computed 2026-10-21. Adoption (stars, forks) is never an input.
- gap_med: 0
- age_days: 1203
- days_rel: 5
- days_push: 4
- n_releases_24m: 360
Adoption not part of the score
2033 stars · 88 forks observed · 2026-10-17
What it is AI-extracted, prompt v1, taxonomy v1, 2026-08-30, confidence not recorded
IBM/fp-go is a functional programming library for Go 1.24+ inspired by fp-ts, providing monads like Option, Either, Result, IO, and Reader, plus optics such as Lens, Prism, and Traversal. It leverages generic type aliases to offer a clean, composable API for pure functions and side-effect isolation.
Use cases
- handle errors functionally in Go with Either and Result types
- isolate side effects using IO monads in Go code
- compose pure functions with pipe and monadic operations
- manipulate immutable data structures with lenses and prisms
- write testable Go code with functional patterns
- use Functor, Applicative, and Monad abstractions in Go
When to choose
- you want fp-ts-style functional programming idioms in Go
- your project uses Go 1.24+ and benefits from generics-based abstractions
- you need explicit error handling and side-effect isolation for maintainable, testable code
When to avoid
- your team prefers idiomatic imperative Go without functional abstractions
- you need a stable, non-breaking API - the library is marked work-in-progress with possible breaking changes
- your codebase targets Go versions earlier than 1.24
Facets
library · maturity active
error-handling concurrency developer-tools programming-languages developer-tools go cross-platform functional-programming monads optics fp-ts generics immutability do-notation algorithms
2 sources
- readme: https://github.com/IBM/fp-go · fetched 2026-10-17 · 09d0839d99fb
- homepage: https://github.com/IBM/fp-go/tree/main/v2 · fetched 2026-08-29 · 9e90026a4fb2
Member repositories
| Repository | Role | Health v2 |
|---|---|---|
| IBM/fp-go | main | 92 |
For agents
Data as of 2026-10-19T08:05:51.212177+00:00 · Report a problem