Discord is now Scala’s main chat platform. Please join us at https://discord.com/invite/scala
MyDbAlg
and MyHttpAlg
Data types a la carte
). It's a way clunkier solution than final tagless for that)
MonadError
cannot be refactored as a final tagless effect
MonadError
cannot be refactored as an algebra, because it has F[_]
in contravariant position (and the algebra could not have an FFunctor
, or FunctorK
as cats calls it)
Extensibility for the masses
)
Seq
. I'm looking into mostly using directly List
but I'm scared that it could make matters worse as it doesn't fuse and some of the collections hidden behind some of the Seq
might do it.
the ideas behind final tagless are two:
This is a genius idea, not trivial at all, and the technique definitely deserves a name, especially when you take it in its entirety (e.g. do parsing or optimisations on final tagless languages)
mtl
MonadLayers
,monad-control
, and so on