https://kotlinlang.org logo
#arrow
Title
# arrow
c

CLOVIS

09/23/2023, 7:01 PM
Hi! I released Pedestal State, a library which introduces
ProgressiveOutcome
, a type similar to Either but with progress indicator information. Of course, there are conversion functions to-and-from Either, and it is compatible with the Raise DSL. The library also has cache algorithms to avoid repeating requests. You can see the full announcement in #feed: https://kotlinlang.slack.com/archives/C0BJ0GTE2/p1695489321382189, or ask any questions here 🙂
thank you color 1
🙌 1
I find the Pedestal evolutions through major versions very interesting. Pedestal 1 was based directly on Arrow. That was back before Raise etc, and I found basing an entire library on top of Arrow difficult. So I started to make Arrow an optional dependency. Pedestal 2 (just released) makes Arrow an optional dependency, and is compatible with the Raise DSL and all new niceties. To do this, it adds a custom Either-like type, Outcome. With how much Arrow has improved, especially with the (future) context receivers, I'm tempted to go back. Whenever context receivers are multiplatform, and Arrow 2.0 is released, I will probably release a Pedestal 3 which will go all-in on Raise.
🙌 1
s

simon.vergauwen

09/25/2023, 6:14 AM
I think it makes sense to have a custom intermediate type for now. One of my big goals for 2.0 is that it wouldn't be necessary anymore due to the small binary.
c

CLOVIS

09/25/2023, 8:34 AM
Yes, that's one of the major reasons why I'd like Pedestal to go back to pure Arrow in the future. With Progress (the progress indicator module) being extremely small (it's 30 LoC!), I really want to have very lightweight error management on top of it, and the cleanup in Arrow 2.0 will make that much better. The
Outcome
/`ProgressiveOutcome` don't have the
recover
DSL etc, and I really don't want to duplicate those.
4 Views