finds.dev← search

// the find

frees-io/freestyle

★ 613 · Scala · Apache-2.0 · updated Aug 2019

A cohesive & pragmatic framework of FP centric Scala libraries

Freestyle is a macro-based Scala framework from 2017-2018 that tried to reduce the boilerplate of writing programs with Free monads and tagless final algebras. It targeted Scala developers building purely functional applications who wanted the theory without the ceremony. Last commit was August 2019.

The @free and @module macro annotations genuinely eliminated a lot of repetitive coproduct wiring that was painful to write by hand. The module system for composing algebras is well thought out — declaring dependencies as implicits and having them resolved automatically was a real ergonomic win. The integration breadth was ambitious: doobie, slick, fetch, fs2, monix, Akka HTTP, http4s, Finch, and Play all had adapters.

Dead since 2019 — the last release was 0.8.2 for Scala 2.11/2.12, meaning Scala 3 is a hard no. It required the scalameta paradise compiler plugin, which was itself deprecated; that dependency chain is now broken on any modern toolchain. The Scala FP community moved on: cats-effect + tagless final without macros is now the default pattern, and the problem Freestyle solved is considered solved differently. Adopting it today means inheriting unmaintained macro code that will fight you on every compiler upgrade.

View on GitHub → Homepage ↗

// want more like this?

Every week we dig through GitHub and send you a few repos picked for what you're working on, each with an honest take like this one. Free. See a real issue →

// similar repos

Search the finds →