Functional programming toolbox
This is a first release with a partial support of Cats Effect 3.
Nevertheless, the support of Cats Effect 2 is still here due to the new concept called Carriers
. In short there is a macro that will use the correct instances for the tofu
typeclasses depending on the version of cats-effect-interop module.
Note that IntelliJ IDEA could possibly show some false errors when using this new concept.
Sadly, tofu doesn't fully support CE3 yet: some of the typeclasses (mostly concurrent ones) are still in progress of migrating.
There is the new cats-effect-free package tofu-kernel
, along with tofu-core
& tofu-core3
which work with CE2 & CE3 respectively.
So if you are using cats-effect-3 in your app, then add "tf.tofu" %% "tofu-core3" % "0.10.4"
in your deps, and for CE2 users nothing changes: tofu-core
works just fine.
Kernel now also has an important typeclass Delay
which is able to delay some computation (like the part of Sync without Monad and such).
Many of the old packages (such as logging ones) are now cats-effect-free too, so you can use them with whatever runtime you want.
tofu-doobie-logging
, examples
and improve doobie example @FunFunFine (#724)evalFilter
combinator. @oskin1 (#632)tofu-logging-log4cats
module @psisoyev (#478)ContravariantRaise
undeprecated. @oskin1 (#469)WithContext
structure promotion added to Context.Companion
@oskin1 (#473)Lift
usage eliminated from evals
syntax. @oskin1 (#460)Raise
in syntax where only error type is known @Odomontois (#400)