Ross ROSS = Recommend OSS · open-source software intelligence for agents

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

github.com/IBM/fp-go · homepage · Go · Apache-2.0 (permissive) 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

Full methodology

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

Member repositories

RepositoryRoleHealth v2
IBM/fp-gomain91

For agents

markdown · JSON · MCP: product_card(name="IBM/fp-go")

Data as of 2026-08-30T08:39:29.467469+00:00 · Report a problem