Replies: 1 comment 3 replies
-
Hmm, that's a tricky one. If you just want to use a specific function with But if you're porting existing code, then that no longer works 🤔 Then you have two options:
With the second point you trade a performance hit for every function that would run fine with sequential unlift for your testing time. Both approaches are valid in different circumstances, so it's hard to pick a default that'll satisfy everyone. |
Beta Was this translation helpful? Give feedback.
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
A major pain-point to me in
effectful
is the use of unlifting strategies and runtime errors. Worse is thatMonadUnliftIO
useswithEffToIO
, which uses the currently set unlifting strategy, which defaults to seq-unlift. This makes porting an existing codebase that usesMonadUnliftIO
pervasively very difficult, as you know way of statically knowing your program will actually work at runtime, or if it will crash - a proper port requires domain knowledge as to where threading happens. If we were to default to a conc-unlifting strategy, I believe we avoid this problem.Or is it not that simple? Also, should it maybe be suggested that porting efforts use
withUnliftStrategy
to upgrade the default?Beta Was this translation helpful? Give feedback.
All reactions