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-08-28
Health v2 · maintenance only
91/100
- Activity 98
- Release rhythm 86
- Longevity 82
How is this computed?
round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10) — computed 2026-09-03. Adoption (stars, forks) is never an input.
- gap_med: 0.0
- age_days: 1155
- days_rel: 17
- days_push: 14
- n_releases_24m: 321
Adoption not part of the score
2020 stars · 82 forks observed · 2026-08-28
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-08-28 · 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 | 91 |
For agents
Data as of 2026-08-30T08:39:29.467469+00:00 · Report a problem