You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Since the library is feature-complete, and with the fix of #5, I think it is more or less the time to cut a release.
In the spirit of haskell-effectful/effectful#1, I'd like to ask @isovector, @KingoftheHomeless and @noughtmare to take a look at this library and offer your opinions and/or point out flaws. I have also talked with @arybczak and @lexi-lambda about cleff before and gained some valuable insights, but if you have anything else that you'd like to point out then please don't hesitate to do so.
Some tl;drs about cleff:
Like effectful, it is implemented with ReaderT IO, but differs greatly in details which is reflected in the discussion in Advantages over effectful #2. In particular,
effectful stores both handlers and states in thread-local mutable arrays.
cleff stores handlers in immutable arrays and states in IORefs which are shared among threads.
Due to these differences, unlike effectful, cleff does not have static dispatch or thread-local state.
cleff aims to have expressive interpretation API that supports higher-order effects. Currently the API expressibility is on par with that of polysemy and easier to use in my opinion (except that the final monad can only be IO due to the obvious restriction of the implementation).
Since the library is feature-complete, and with the fix of #5, I think it is more or less the time to cut a release.
In the spirit of haskell-effectful/effectful#1, I'd like to ask @isovector, @KingoftheHomeless and @noughtmare to take a look at this library and offer your opinions and/or point out flaws. I have also talked with @arybczak and @lexi-lambda about
cleff
before and gained some valuable insights, but if you have anything else that you'd like to point out then please don't hesitate to do so.Some tl;drs about
cleff
:effectful
, it is implemented withReaderT IO
, but differs greatly in details which is reflected in the discussion in Advantages over effectful #2. In particular,effectful
stores both handlers and states in thread-local mutable arrays.cleff
stores handlers in immutable arrays and states inIORef
s which are shared among threads.effectful
,cleff
does not have static dispatch or thread-local state.cleff
aims to have expressive interpretation API that supports higher-order effects. Currently the API expressibility is on par with that ofpolysemy
and easier to use in my opinion (except that the final monad can only beIO
due to the obvious restriction of the implementation).cleff
solves the HO semantics problem that hauntseff
(Incorrect semantics for higher-order effects hasura/eff#12) though I'm not sure if that solution is portable toeff
given it needs to support coroutines.The text was updated successfully, but these errors were encountered: