Great article - really enjoyed reading this.
The comparison between the library approach (fp-go) and the language-level approach (GALA) to bringing functional programming into Go is very insightful. The examples around Option pipelines, Either error handling, and collection transformations clearly show how Go’s syntax introduces verbosity when FP patterns are implemented purely as libraries.
I especially liked the discussion around type annotations, Pipe functions, and the signal-to-noise ratio in fp-go versus the cleaner method chaining, lambda inference, and pattern matching in GALA. The side-by-side examples make the trade-offs very clear.
It’s interesting to see how fp-go proves that FP abstractions can work in Go, while GALA explores what happens when those ideas are supported at the language level instead of through libraries.
Really thoughtful breakdown of the design tension between staying within Go’s ecosystem vs improving developer ergonomics for FP-heavy codebases.