Open neko-kai opened 4 years ago
I guess QuasiIO and MiniBIO are relevant too.
I think we may remove QuasiAsync
by providing Identity implementations for Parallel3, Async3 and Temporal3 ([Nothing, Throwable, _]
). Same for QuasiIO
, it duplicates BIO
. The lawless Identity implementation should be hidden in a separate namespace.
We currently use
DIEffect
typeclass in distage for interoperability with monofunctor effect types that define aSync
instance, even though the bifunctor case is handled byBIO
. There's a way to turn monofunctor effects into bifunctors by wrapping typed errors into a special Throwable. We could probably use that to make everything just useBIO