Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

catch for EffectScope #2746

Merged
merged 19 commits into from Jul 21, 2022
Merged

catch for EffectScope #2746

merged 19 commits into from Jul 21, 2022

Conversation

serras
Copy link
Member

@serras serras commented Jun 23, 2022

This PR adds a small utility method for "simulating" catch as we have for exceptions. If this is useful, a bunch of other utility methods can be implemented on top of it, but first I wanted to know whether you like this catch.

@serras serras requested review from raulraja and nomisRev June 23, 2022 07:38
* The [handler] may `shift` into a different `ErrorScope`, which is useful to
* simulate re-throwing of exceptions.
*/
public suspend fun<E, R, A> EffectScope<E>.catch(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs to be an extension due to variance?

This duplicates behaviour with handleErrorXXX but it exposes a nicer lambda for handler where you can leverage the DSL again by exposing EffectScope<E> on the receiver of the lambda.

I am absolutely up for improving these APIs, and renaming them but we should probably avoid duplicated APIs as much as possible to keep the API surface reasonable.

That being said this signatures reminds me a lot of Flow#catch, and it uses the same naming so I am in favour of catch over the current handleErrorXXX & redeemXXX methods. This seems to cover all 4 APIs with a single nice API.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For me the question is how much of the API should be exposed via EffectScope<E> as opposed to Effect. Personally, I'd prefer to stay within the realm of EffectScope as much as I could, and only refer to Effect to "run" the action at the very top level. But I also see this is very much a design choice, so I'll be happy with whatever decision you take.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

About not being an extension, I just wrote it directly like that, although it could also be part of EffectScope itself. In fact, this opens the decades-old debate: it catch part of the "error effect", or is it a "effect transformer" (my definition of catch says that the latter).

Copy link
Member

@i-walker i-walker Jun 23, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This also an alternative, using the UnsafeVariance, which is fine here.

// in EffectScope interface

public suspend fun <B> Effect<R, B>.catch(recover: suspend EffectScope<R>.(@UnsafeVariance R) -> B): B =
    fold({ recover(it) }, ::identity)

we can also have the Effect be a parameter, if this is a better encoding

@nomisRev
Copy link
Member

If we speak in terms of catch then I think we also revisit renaming shift to raiseError or similar. WDYT?

@nomisRev nomisRev requested a review from a team June 23, 2022 13:01
@serras
Copy link
Member Author

serras commented Jun 23, 2022

If we speak in terms of catch then I think we also revisit renaming shift to raiseError or similar. WDYT?

Or we can go with reset instead of catch if you prefer the delimited continuations terminology. In my perfect world we would keep both: EffectScope/shift/reset speak of the general concept, wheread ErrorScope/throw/catch speak of the most important use case.

@i-walker
Copy link
Member

i-walker commented Jun 23, 2022

If we speak in terms of catch then I think we also revisit renaming shift to raiseError or similar. WDYT?

I am also in favour of remaining with one naming convention - here in favour of shift, instead of multiple ones. Though reset, might not fit within the worlds of the Kotlin Stdlib.

@nomisRev
Copy link
Member

Or we can go with reset instead of catch if you prefer the delimited continuations terminology. In my perfect world we would keep both: EffectScope/shift/reset speak of the general concept

@serras I thought reset had a different meaning in delimited continuations 🤔 Since from a reset block you can typically shift multiple values, no? I am not sure we have to stick to the delimited continuations terminology perse, from, from a Kotlin user point of view I don't think it brings any benefit.

Personally, I'd prefer to stay within the realm of EffectScope as much as I could, and only refer to Effect to "run" the action at the very top level.

While I personally agree with this, I don't expect this to become the most popular usage in Kotlin/Arrow. That heavily depends though on how we want to model Arrow towards 2.0. Which I think with all these new changes is on the horizon. For example, a really cool usage which I think would be popular is the following.

suspend fun fetchUser(id: UUID): Either<DbError, User> = ...

// This pattern covers handleErrorWith, handleError, redeem & redeemWith
either<ServiceError, ServiceUser> {
  catch({ fetchUser(uuid) }) { dbError ->
     shift(dbError.toServiceError())
  }
}

This is also another example for me that people will not feel that shift is an idiomatic name in Kotlin.
And that the signature that your propose absolutely makes sense!

It's also 100% in line with what KotlinX Coroutines already exposes in its datatypes (Flow).
It would drastically reduce API surface, which decreases learning curve etc.
1 pattern/api for all effect-style code / data types.

@serras
Copy link
Member Author

serras commented Jul 1, 2022

One more design question, after looking at Flow's catch: to completely mirror that API we should provide a catch that can be used as:

{ fetchUser(uuid) }.catch { dbError -> shift(dbError.toServiceError()) }

However, I don't know how to write such function (since there's already a receiver), nor whether that would be good for our use case. Another possibility is to mark the function infix, so we can write:

{ fetchUser(uuid) } catch { dbError -> shift(dbError.toServiceError()) }

but maybe then we get a conflict due to a keyword being used.

@serras
Copy link
Member Author

serras commented Jul 1, 2022

@serras I thought reset had a different meaning in delimited continuations 🤔 Since from a reset block you can typically shift multiple values, no? I am not sure we have to stick to the delimited continuations terminology perse, from, from a Kotlin user point of view I don't think it brings any benefit.

My understanding was that reset was a way to mark the "scope" of a shift, in the sense that a call to shift would bubble up to the nearest reset. In that sense, this works a bit like this, since we force the action to run and capture everything bubbling up. But I agree that it gives no benefit for Kotlin users.

@nomisRev
Copy link
Member

nomisRev commented Jul 1, 2022

One more design question, after looking at Flow's catch: to completely mirror that API we should provide a catch that can be used as:

{ fetchUser(uuid) }.catch { dbError -> shift(dbError.toServiceError()) }

I'm personally not a big fun of these APIs, since they don't play well with inference and they most of the times don't show up in auto-completion. Maybe @BuilderInference solves the inference issue, but not sure.
In that regard I would say that Effect<E, A>.catch(...) would be a better signature, but I prefer your original signature and I think it makes perfect sense in our DSL style API.

KotlinX Coroutines in also takes similar approach of DSL-like blocks for suspend () -> A signatures. Even more so when they can be written using inline fun since then the DSL works for both non-suspend and suspending code. Such as withContext, timeoutOrNull.

public fun<E, R, A> EagerEffectScope<E>.catch(
f: suspend EagerEffectScope<R>.() -> A,
recover: EagerEffectScope<E>.(R) -> A
): A = eagerEffect(f).fold(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NIT: Recover first, operation last.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also for a DSL like this? I know it's the convention for bimap, fold etc but to me it feels counter-intuitive here since this models an operation like try { } catch { } but for typed errors.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking at things like Flow's catch, I think that the convention is action, then recovery.

Copy link
Member

@i-walker i-walker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @serras, going through our discussion I prefer the original encoding too. And it gives us room in case we come up with improvements.

I corrected an earlier review above

Copy link
Member

@nomisRev nomisRev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

About not being an extension, I just wrote it directly like that, although it could also be part of EffectScope itself. In fact, this opens the decades-old debate: it catch part of the "error effect", or is it a "effect transformer" (my definition of catch says that the latter).

Sorry @serras I don't want to drag this out 😅 These APIs are paving the way to new great stuff in Arrow so I think they deserve a little bit of extra attention (and nit picky 🙈)

Currently as it stands it requires import arrow.core.continuations.catch, and it'll be listed last when suggesting APIs in IntelliJ IIRC since members get preference and don't require an import in Kotlin.

So IMO the ergonomics are better as a member of EffectScope, but since R is defined as out it would require @UnsafeVariance as @i-walker suggested. And I think that hinders other ergonomics. I.e. that you cannot "upcast"? (right? 🤔)

@serras
Copy link
Member Author

serras commented Jul 6, 2022

@nomisRev and I have been working a bit on the ergonomics, and came to a two-step blocks,

attempt { /* something */ } catch { e -> /* handle e */ }

We found no other (easy) way for the compiler to infer the types of every block, a problem that surfaced once I started adding tests.

@serras
Copy link
Member Author

serras commented Jul 6, 2022

@nomisRev @i-walker any further comments?

@i-walker
Copy link
Member

i-walker commented Jul 6, 2022

Using attempt might introduce confusion since, we're using Effect#attempt for instance here and EagerEffect#attempt to run continuations. Is there another descriptor name we can use

@serras
Copy link
Member Author

serras commented Jul 6, 2022

The only other name appart from attempt and try that I can think of is strive, but I'm not sure it sounds any good...

@i-walker i-walker self-requested a review July 7, 2022 08:49
Copy link
Member

@nomisRev nomisRev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this great new API @serras 👏 🥳
This is another huge improvement towards Arrow 2.0 🎉

* <!--- KNIT example-effect-scope-09.kt -->
*/
public suspend infix fun <E, A> (suspend EffectScope<E>.() -> A).catch(
recover: EffectScope<R>.(E) -> A,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this not be recover: suspend EffectScope<R>.(E) -> A? My eye only fell on this just now.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, the handler executes in the same context available to the outer thing (which is called R here). The idea is that you “close over” errors of type E, and may turn them into errors of type R, if that makes sense.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, makes sense but not sure I understand why suspend is not allowed in recover 🤔

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doesn’t this prevent you from calling shift or bind?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, I forgot it when I moved it from being an extension function! I’ll push an update tonight.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome, feel free to merge after! Great contribution, excited to see this getting merged 🥳

serras and others added 2 commits July 19, 2022 13:14
…ntinuations/EagerEffectScope.kt

Co-authored-by: Imran Malic Settuba <46971368+i-walker@users.noreply.github.com>
@@ -109,6 +110,32 @@ class EffectSpec :
}
}

"attempt - catch" {
checkAll(Arb.int(), Arb.long()) { i, l ->
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we add these tests for EagerEffect too? I think we’ll run into the issue that shift cannot be called from the EagerEffect catch method, but I’m not 100% sure.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done!

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like we're able to use shift since attempt is within a suspend EagerEffectScope.() -> A ☺️

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @serras! I was wrong 😁

@serras
Copy link
Member Author

serras commented Jul 21, 2022

@i-walker after our meeting today I'm not sure whether I should merge this or not. If you say yes, I'll do it :)

@i-walker
Copy link
Member

No, go ahead this is fine to be merged :) @serras

@serras serras merged commit 0c50804 into main Jul 21, 2022
i-walker added a commit that referenced this pull request Jul 25, 2022
i-walker added a commit that referenced this pull request Jul 26, 2022
sgammon added a commit to elide-dev/elide that referenced this pull request Jan 15, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [io.arrow-kt:arrow-fx-coroutines](https://togithub.com/arrow-kt/arrow)
| `1.0.1` -> `1.1.3` |
[![age](https://badges.renovateapi.com/packages/maven/io.arrow-kt:arrow-fx-coroutines/1.1.3/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/maven/io.arrow-kt:arrow-fx-coroutines/1.1.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/maven/io.arrow-kt:arrow-fx-coroutines/1.1.3/compatibility-slim/1.0.1)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/maven/io.arrow-kt:arrow-fx-coroutines/1.1.3/confidence-slim/1.0.1)](https://docs.renovatebot.com/merge-confidence/)
|
|
[io.arrow-kt:arrow-optics-ksp-plugin](https://togithub.com/arrow-kt/arrow)
| `1.0.1` -> `1.1.3` |
[![age](https://badges.renovateapi.com/packages/maven/io.arrow-kt:arrow-optics-ksp-plugin/1.1.3/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/maven/io.arrow-kt:arrow-optics-ksp-plugin/1.1.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/maven/io.arrow-kt:arrow-optics-ksp-plugin/1.1.3/compatibility-slim/1.0.1)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/maven/io.arrow-kt:arrow-optics-ksp-plugin/1.1.3/confidence-slim/1.0.1)](https://docs.renovatebot.com/merge-confidence/)
|
| [io.arrow-kt:arrow-optics](https://togithub.com/arrow-kt/arrow) |
`1.0.1` -> `1.1.3` |
[![age](https://badges.renovateapi.com/packages/maven/io.arrow-kt:arrow-optics/1.1.3/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/maven/io.arrow-kt:arrow-optics/1.1.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/maven/io.arrow-kt:arrow-optics/1.1.3/compatibility-slim/1.0.1)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/maven/io.arrow-kt:arrow-optics/1.1.3/confidence-slim/1.0.1)](https://docs.renovatebot.com/merge-confidence/)
|
| [io.arrow-kt:arrow-core](https://togithub.com/arrow-kt/arrow) |
`1.0.1` -> `1.1.3` |
[![age](https://badges.renovateapi.com/packages/maven/io.arrow-kt:arrow-core/1.1.3/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/maven/io.arrow-kt:arrow-core/1.1.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/maven/io.arrow-kt:arrow-core/1.1.3/compatibility-slim/1.0.1)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/maven/io.arrow-kt:arrow-core/1.1.3/confidence-slim/1.0.1)](https://docs.renovatebot.com/merge-confidence/)
|
| [io.arrow-kt:arrow-stack](https://togithub.com/arrow-kt/arrow) |
`1.0.1` -> `1.1.3` |
[![age](https://badges.renovateapi.com/packages/maven/io.arrow-kt:arrow-stack/1.1.3/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/maven/io.arrow-kt:arrow-stack/1.1.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/maven/io.arrow-kt:arrow-stack/1.1.3/compatibility-slim/1.0.1)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/maven/io.arrow-kt:arrow-stack/1.1.3/confidence-slim/1.0.1)](https://docs.renovatebot.com/merge-confidence/)
|

---

### ⚠ Dependency Lookup Warnings ⚠

Warnings were logged while processing this repo. Please check the
Dependency Dashboard for more information.

---

### Release Notes

<details>
<summary>arrow-kt/arrow</summary>

### [`v1.1.3`](https://togithub.com/arrow-kt/arrow/releases/tag/1.1.3)

[Compare
Source](https://togithub.com/arrow-kt/arrow/compare/1.1.2...1.1.3)

#### What's Changed

- Fix license url by [@&#8203;i-walker](https://togithub.com/i-walker)
in
[arrow-kt/arrow#2712
- Add new workflow for publishing the landing page by
[@&#8203;franciscodr](https://togithub.com/franciscodr) in
[arrow-kt/arrow#2716
- Fix publish sync by
[@&#8203;JavierSegoviaCordoba](https://togithub.com/JavierSegoviaCordoba)
in
[arrow-kt/arrow#2717
- invert resource release order by
[@&#8203;tKe](https://togithub.com/tKe) in
[arrow-kt/arrow#2714
- Fix traversal code samples of docs by
[@&#8203;b-schwab](https://togithub.com/b-schwab) in
[arrow-kt/arrow#2719
- Adding kotlin-js-store folder by
[@&#8203;franciscodr](https://togithub.com/franciscodr) in
[arrow-kt/arrow#2724
- rename traverseX and sequenceX functions in core by
[@&#8203;i-walker](https://togithub.com/i-walker) in
[arrow-kt/arrow#2715
- feat: contravariance for R, A in Effect, EagerEffect and `in` for
\*EffectScope by [@&#8203;i-walker](https://togithub.com/i-walker) in
[arrow-kt/arrow#2722
- deprecate flatMap and map in EagerEffect by
[@&#8203;i-walker](https://togithub.com/i-walker) in
[arrow-kt/arrow#2726
- add Continuations and programs to overview section in arrow core by
[@&#8203;i-walker](https://togithub.com/i-walker) in
[arrow-kt/arrow#2723
- Update all dependencies by
[@&#8203;renovate](https://togithub.com/renovate) in
[arrow-kt/arrow#2709
- revert java setup by [@&#8203;i-walker](https://togithub.com/i-walker)
in
[arrow-kt/arrow#2730
- Add command to install bundler by
[@&#8203;franciscodr](https://togithub.com/franciscodr) in
[arrow-kt/arrow#2729
- Improve Nel constructor by
[@&#8203;nomisRev](https://togithub.com/nomisRev) in
[arrow-kt/arrow#2728
- improve generate-tag workflow by
[@&#8203;i-walker](https://togithub.com/i-walker) in
[arrow-kt/arrow#2731
- revert arrow-gradle-config to 0.10.1 by
[@&#8203;i-walker](https://togithub.com/i-walker) in
[arrow-kt/arrow#2738
- Rename duplicated test by [@&#8203;wojda](https://togithub.com/wojda)
in
[arrow-kt/arrow#2740
- Fix some compilation and test warnings by
[@&#8203;wojda](https://togithub.com/wojda) in
[arrow-kt/arrow#2741
- Convert Arrow core effect into a non-inline function by
[@&#8203;franciscodr](https://togithub.com/franciscodr) in
[arrow-kt/arrow#2734
- add merge to validated by
[@&#8203;agusotto96](https://togithub.com/agusotto96) in
[arrow-kt/arrow#2739
- Fix compilation warnings by replacing usages of deprecated methods by
[@&#8203;wojda](https://togithub.com/wojda) in
[arrow-kt/arrow#2742
- Bump versions by [@&#8203;nomisRev](https://togithub.com/nomisRev) in
[arrow-kt/arrow#2745
- Add `kotlin.mpp.enableCompatibilityMetadataVariant=true` by
[@&#8203;JavierSegoviaCordoba](https://togithub.com/JavierSegoviaCordoba)
in
[arrow-kt/arrow#2747
- fix alpha tag build task by
[@&#8203;i-walker](https://togithub.com/i-walker) in
[arrow-kt/arrow#2749
- Fix build, inject kotlin.mpp.enableCompatibilityMetadataVariant in CI
by [@&#8203;nomisRev](https://togithub.com/nomisRev) in
[arrow-kt/arrow#2751
- add merge function for \*Effect by
[@&#8203;i-walker](https://togithub.com/i-walker) in
[arrow-kt/arrow#2752
- Small docs fix for widen function by
[@&#8203;lenguyenthanh](https://togithub.com/lenguyenthanh) in
[arrow-kt/arrow#2754
- max and min methods for NonEmptyList by
[@&#8203;dorians](https://togithub.com/dorians) in
[arrow-kt/arrow#2622
- Deprecate arrow test modules by
[@&#8203;i-walker](https://togithub.com/i-walker) in
[arrow-kt/arrow#2753
- Update kotlin-js-store/yarn.lock by
[@&#8203;serras](https://togithub.com/serras) in
[arrow-kt/arrow#2756
- Update all dependencies except the compiler version by
[@&#8203;serras](https://togithub.com/serras) in
[arrow-kt/arrow#2757
- Resource deprecate traverseResource, fixes arity-4 by
[@&#8203;nomisRev](https://togithub.com/nomisRev) in
[arrow-kt/arrow#2750
- Fix [#&#8203;2764](https://togithub.com/arrow-kt/arrow/issues/2764) &
[#&#8203;2760](https://togithub.com/arrow-kt/arrow/issues/2760) by
[@&#8203;nomisRev](https://togithub.com/nomisRev) in
[arrow-kt/arrow#2765
- \[2761] Add explicit visibility modifier for all the generated optics
by [@&#8203;aangairbender](https://togithub.com/aangairbender) in
[arrow-kt/arrow#2763
- catch for EffectScope by [@&#8203;serras](https://togithub.com/serras)
in
[arrow-kt/arrow#2746
- Refine the Arrow version selector by
[@&#8203;franciscodr](https://togithub.com/franciscodr) in
[arrow-kt/arrow#2770
- update gradle wrapper by
[@&#8203;i-walker](https://togithub.com/i-walker) in
[arrow-kt/arrow#2771
- Consent management osano by
[@&#8203;israelperezglez](https://togithub.com/israelperezglez) in
[arrow-kt/arrow#2755
- Add ruby setup for publication task by
[@&#8203;i-walker](https://togithub.com/i-walker) in
[arrow-kt/arrow#2774
- fix ruby set up by [@&#8203;i-walker](https://togithub.com/i-walker)
in
[arrow-kt/arrow#2775
- Fix [#&#8203;2779](https://togithub.com/arrow-kt/arrow/issues/2779) by
[@&#8203;nomisRev](https://togithub.com/nomisRev) in
[arrow-kt/arrow#2783
- deprecate orNull Either extension function by
[@&#8203;i-walker](https://togithub.com/i-walker) in
[arrow-kt/arrow#2773
- Support generics and inner classes in `@optics` by
[@&#8203;serras](https://togithub.com/serras) in
[arrow-kt/arrow#2776
- Generalized copy for optics by
[@&#8203;serras](https://togithub.com/serras) in
[arrow-kt/arrow#2777
- Fix usage of startCoroutineUninterceptedOrReturn by
[@&#8203;nomisRev](https://togithub.com/nomisRev) in
[arrow-kt/arrow#2789
- Fix example in documentation by
[@&#8203;obecker](https://togithub.com/obecker) in
[arrow-kt/arrow#2790
- Backport flattening token/shift into Cont by
[@&#8203;nomisRev](https://togithub.com/nomisRev) in
[arrow-kt/arrow#2791
- Enable builder inference for optics `copy` by
[@&#8203;serras](https://togithub.com/serras) in
[arrow-kt/arrow#2792
- Update API compatibility validator version by
[@&#8203;serras](https://togithub.com/serras) in
[arrow-kt/arrow#2794
- \[BUGFIX] Result.zip by
[@&#8203;nomisRev](https://togithub.com/nomisRev) in
[arrow-kt/arrow#2804
- Update docs from version 1.0.1 to 1.1.2 by
[@&#8203;Dobiasd](https://togithub.com/Dobiasd) in
[arrow-kt/arrow#2808
- add separateEither and separateValidated test by
[@&#8203;hoc081098](https://togithub.com/hoc081098) in
[arrow-kt/arrow#2814
- Refactor -
[#&#8203;2812](https://togithub.com/arrow-kt/arrow/issues/2812) iterable
separate performance by [@&#8203;Khepu](https://togithub.com/Khepu) in
[arrow-kt/arrow#2815
- Add Resource.allocated() to decompose Resource into it's allocate and…
by [@&#8203;custommonkey](https://togithub.com/custommonkey) in
[arrow-kt/arrow#2820

#### New Contributors

- [@&#8203;tKe](https://togithub.com/tKe) made their first contribution
in
[arrow-kt/arrow#2714
- [@&#8203;b-schwab](https://togithub.com/b-schwab) made their first
contribution in
[arrow-kt/arrow#2719
- [@&#8203;wojda](https://togithub.com/wojda) made their first
contribution in
[arrow-kt/arrow#2740
- [@&#8203;agusotto96](https://togithub.com/agusotto96) made their first
contribution in
[arrow-kt/arrow#2739
- [@&#8203;dorians](https://togithub.com/dorians) made their first
contribution in
[arrow-kt/arrow#2622
- [@&#8203;aangairbender](https://togithub.com/aangairbender) made their
first contribution in
[arrow-kt/arrow#2763
- [@&#8203;obecker](https://togithub.com/obecker) made their first
contribution in
[arrow-kt/arrow#2790
- [@&#8203;Dobiasd](https://togithub.com/Dobiasd) made their first
contribution in
[arrow-kt/arrow#2808
- [@&#8203;hoc081098](https://togithub.com/hoc081098) made their first
contribution in
[arrow-kt/arrow#2814
- [@&#8203;Khepu](https://togithub.com/Khepu) made their first
contribution in
[arrow-kt/arrow#2815
- [@&#8203;custommonkey](https://togithub.com/custommonkey) made their
first contribution in
[arrow-kt/arrow#2820

**Full Changelog**:
arrow-kt/arrow@1.1.2...1.1.3

### [`v1.1.2`](https://togithub.com/arrow-kt/arrow/releases/tag/1.1.2)

[Compare
Source](https://togithub.com/arrow-kt/arrow/compare/1.1.0...1.1.2)

#### What's Changed

- Update all dependencies to v1.6.21-1.0.5
([#&#8203;2708](https://togithub.com/arrow-kt/arrow/issues/2708)) by
[@&#8203;renovate-bot](https://togithub.com/renovate-bot)

**Full Changelog**:
arrow-kt/arrow@1.1.0...1.1.2

### [`v1.1.0`](https://togithub.com/arrow-kt/arrow/releases/tag/1.1.0)

[Compare
Source](https://togithub.com/arrow-kt/arrow/compare/1.0.1...1.1.0)

#### What's Changed

- Define Dsl as public
([#&#8203;2706](https://togithub.com/arrow-kt/arrow/issues/2706)) by
[@&#8203;i-walker](https://togithub.com/i-walker)
- Update all dependencies
([#&#8203;2705](https://togithub.com/arrow-kt/arrow/issues/2705)) by
[@&#8203;renovate-bot](https://togithub.com/renovate-bot)
- Update link to Arrow Analysis documentation
([#&#8203;2701](https://togithub.com/arrow-kt/arrow/issues/2701)) by
[@&#8203;franciscodr](https://togithub.com/franciscodr)
- Update all dependencies
([#&#8203;2703](https://togithub.com/arrow-kt/arrow/issues/2703)) by
[@&#8203;renovate-bot](https://togithub.com/renovate-bot)
- Update plugin dokka to v1.6.20
([#&#8203;2702](https://togithub.com/arrow-kt/arrow/issues/2702)) by
[@&#8203;renovate-bot](https://togithub.com/renovate-bot)
- Update stefanzweifel/git-auto-commit-action action to v4.14.1
([#&#8203;2700](https://togithub.com/arrow-kt/arrow/issues/2700)) by
[@&#8203;renovate-bot](https://togithub.com/renovate-bot)
- Update all dependencies
([#&#8203;2699](https://togithub.com/arrow-kt/arrow/issues/2699)) by
[@&#8203;renovate-bot](https://togithub.com/renovate-bot)
- Update all dependencies
([#&#8203;2696](https://togithub.com/arrow-kt/arrow/issues/2696)) by
[@&#8203;renovate-bot](https://togithub.com/renovate-bot)
- Update
([#&#8203;2698](https://togithub.com/arrow-kt/arrow/issues/2698)) by
[@&#8203;i-walker](https://togithub.com/i-walker)
- Update libs.versions.toml
([#&#8203;2697](https://togithub.com/arrow-kt/arrow/issues/2697)) by
[@&#8203;i-walker](https://togithub.com/i-walker)
- Fix Either#isNotEmpty()'s KDoc sample
([#&#8203;2694](https://togithub.com/arrow-kt/arrow/issues/2694)) by
[@&#8203;ChristianGarcia](https://togithub.com/ChristianGarcia)
- Update gradle/gradle-build-action action to v2.1.5
([#&#8203;2695](https://togithub.com/arrow-kt/arrow/issues/2695)) by
[@&#8203;renovate-bot](https://togithub.com/renovate-bot)
- Update all dependencies
([#&#8203;2665](https://togithub.com/arrow-kt/arrow/issues/2665)) by
[@&#8203;renovate-bot](https://togithub.com/renovate-bot)
- Rename traverseX and sequenceX for Iterable
([#&#8203;2692](https://togithub.com/arrow-kt/arrow/issues/2692)) by
[@&#8203;i-walker](https://togithub.com/i-walker)
- Rename Sequence sequenceX, traverseX and deprecate Sequence.some
([#&#8203;2686](https://togithub.com/arrow-kt/arrow/issues/2686)) by
[@&#8203;i-walker](https://togithub.com/i-walker)
- Deprecate combineAll in favour of fold
([#&#8203;2687](https://togithub.com/arrow-kt/arrow/issues/2687)) by
[@&#8203;i-walker](https://togithub.com/i-walker)
- rm snapshot and update Kotlin label
([#&#8203;2690](https://togithub.com/arrow-kt/arrow/issues/2690)) by
[@&#8203;i-walker](https://togithub.com/i-walker)
- Resource tap deprecation
([#&#8203;2684](https://togithub.com/arrow-kt/arrow/issues/2684)) by
[@&#8203;i-walker](https://togithub.com/i-walker)
- Update Set up Documentation
([#&#8203;2685](https://togithub.com/arrow-kt/arrow/issues/2685)) by
[@&#8203;i-walker](https://togithub.com/i-walker)
- Fix TOC
([#&#8203;2688](https://togithub.com/arrow-kt/arrow/issues/2688)) by
[@&#8203;i-walker](https://togithub.com/i-walker)
- Generate optics based on targets or all
([#&#8203;2683](https://togithub.com/arrow-kt/arrow/issues/2683)) by
[@&#8203;i-walker](https://togithub.com/i-walker)
- Schedule.repeatAsFlow
([#&#8203;2676](https://togithub.com/arrow-kt/arrow/issues/2676)) by
[@&#8203;i-walker](https://togithub.com/i-walker)
- File name generation fix
([#&#8203;2681](https://togithub.com/arrow-kt/arrow/issues/2681)) by
[@&#8203;i-walker](https://togithub.com/i-walker)
- Update all dependencies (major)
([#&#8203;2673](https://togithub.com/arrow-kt/arrow/issues/2673)) by
[@&#8203;renovate-bot](https://togithub.com/renovate-bot)
- fix imports for ksp plugin
([#&#8203;2678](https://togithub.com/arrow-kt/arrow/issues/2678)) by
[@&#8203;i-walker](https://togithub.com/i-walker)
- add Nullable proposal
([#&#8203;2675](https://togithub.com/arrow-kt/arrow/issues/2675)) by
[@&#8203;i-walker](https://togithub.com/i-walker)
- Resource.asFlow
([#&#8203;2677](https://togithub.com/arrow-kt/arrow/issues/2677)) by
[@&#8203;i-walker](https://togithub.com/i-walker)
- remove design doc of Effect
([#&#8203;2674](https://togithub.com/arrow-kt/arrow/issues/2674)) by
[@&#8203;i-walker](https://togithub.com/i-walker)
- Fix typos reorg resource computation block
([#&#8203;2671](https://togithub.com/arrow-kt/arrow/issues/2671)) by
[@&#8203;i-walker](https://togithub.com/i-walker)
- deprecate signatures in computations and add Result for continuations
([#&#8203;2669](https://togithub.com/arrow-kt/arrow/issues/2669)) by
[@&#8203;i-walker](https://togithub.com/i-walker)
- Fix bug in the transaction example
([#&#8203;2667](https://togithub.com/arrow-kt/arrow/issues/2667)) by
[@&#8203;SaberCon](https://togithub.com/SaberCon)
- deprecate arrow.continuation
([#&#8203;2672](https://togithub.com/arrow-kt/arrow/issues/2672)) by
[@&#8203;i-walker](https://togithub.com/i-walker)
- fix sitemap titles
([#&#8203;2670](https://togithub.com/arrow-kt/arrow/issues/2670)) by
[@&#8203;i-walker](https://togithub.com/i-walker)
- Transfer Cont from [@&#8203;nomisrev](https://togithub.com/nomisrev)
to arrow
([#&#8203;2661](https://togithub.com/arrow-kt/arrow/issues/2661)) by
[@&#8203;i-walker](https://togithub.com/i-walker)
- Non throwing Retrofit Either adapter
([#&#8203;2621](https://togithub.com/arrow-kt/arrow/issues/2621)) by
[@&#8203;lukaszkalnik](https://togithub.com/lukaszkalnik)
- Retrofit adapter: allow null response body for methods returning Unit
([#&#8203;2625](https://togithub.com/arrow-kt/arrow/issues/2625)) by
[@&#8203;lukaszkalnik](https://togithub.com/lukaszkalnik)
- Fix broken build main Optics Reflect
([#&#8203;2666](https://togithub.com/arrow-kt/arrow/issues/2666)) by
[@&#8203;nomisRev](https://togithub.com/nomisRev)
- Update documentation links in README
([#&#8203;2664](https://togithub.com/arrow-kt/arrow/issues/2664)) by
[@&#8203;fo2rist](https://togithub.com/fo2rist)
- Optics based on kotlin.reflect
([#&#8203;2612](https://togithub.com/arrow-kt/arrow/issues/2612)) by
[@&#8203;serras](https://togithub.com/serras)
- \[Optics] Optional getter
([#&#8203;2611](https://togithub.com/arrow-kt/arrow/issues/2611)) by
[@&#8203;serras](https://togithub.com/serras)
- Update all dependencies
([#&#8203;2663](https://togithub.com/arrow-kt/arrow/issues/2663)) by
[@&#8203;renovate-bot](https://togithub.com/renovate-bot)
- Fix link to /patterns/error_handling/
([#&#8203;2627](https://togithub.com/arrow-kt/arrow/issues/2627)) by
[@&#8203;IlyaPomaskin](https://togithub.com/IlyaPomaskin)
- Update all dependencies
([#&#8203;2659](https://togithub.com/arrow-kt/arrow/issues/2659)) by
[@&#8203;renovate-bot](https://togithub.com/renovate-bot)
- Update gradle/gradle-build-action action to v2.1.1
([#&#8203;2653](https://togithub.com/arrow-kt/arrow/issues/2653)) by
[@&#8203;renovate-bot](https://togithub.com/renovate-bot)
- \[Optics KSP] Update docs to talk about IDEs
([#&#8203;2655](https://togithub.com/arrow-kt/arrow/issues/2655)) by
[@&#8203;serras](https://togithub.com/serras)
- Use first, .. instead of a,..
([#&#8203;2654](https://togithub.com/arrow-kt/arrow/issues/2654)) by
[@&#8203;nomisRev](https://togithub.com/nomisRev)
- Update README.md
([#&#8203;2631](https://togithub.com/arrow-kt/arrow/issues/2631)) by
[@&#8203;i-walker](https://togithub.com/i-walker)
- CU-23dm3ye support maven publication
([#&#8203;2652](https://togithub.com/arrow-kt/arrow/issues/2652)) by
[@&#8203;i-walker](https://togithub.com/i-walker)
- Update arrow gradle version
([#&#8203;2651](https://togithub.com/arrow-kt/arrow/issues/2651)) by
[@&#8203;i-walker](https://togithub.com/i-walker)
- Move Arrow Optics KSP to main/test hierarchy
([#&#8203;2649](https://togithub.com/arrow-kt/arrow/issues/2649)) by
[@&#8203;serras](https://togithub.com/serras)
- Update libs.versions.toml
([#&#8203;2648](https://togithub.com/arrow-kt/arrow/issues/2648)) by
[@&#8203;i-walker](https://togithub.com/i-walker)
- Link Analysis from home page
([#&#8203;2595](https://togithub.com/arrow-kt/arrow/issues/2595)) by
[@&#8203;serras](https://togithub.com/serras)
- Clean up README after gradle upgrade
([#&#8203;2642](https://togithub.com/arrow-kt/arrow/issues/2642)) by
[@&#8203;felixdivo](https://togithub.com/felixdivo)
- Update plugin kotest-multiplatform to v5.1.0
([#&#8203;2645](https://togithub.com/arrow-kt/arrow/issues/2645)) by
[@&#8203;renovate-bot](https://togithub.com/renovate-bot)
- Update libs.versions.toml
([#&#8203;2644](https://togithub.com/arrow-kt/arrow/issues/2644)) by
[@&#8203;i-walker](https://togithub.com/i-walker)
- Update all dependencies to v5.1.0
([#&#8203;2643](https://togithub.com/arrow-kt/arrow/issues/2643)) by
[@&#8203;renovate-bot](https://togithub.com/renovate-bot)
- revert ksp plugin to jvm only
([#&#8203;2640](https://togithub.com/arrow-kt/arrow/issues/2640)) by
[@&#8203;i-walker](https://togithub.com/i-walker)
- update arrow gradle
([#&#8203;2639](https://togithub.com/arrow-kt/arrow/issues/2639)) by
[@&#8203;i-walker](https://togithub.com/i-walker)
- Update all dependencies
([#&#8203;2638](https://togithub.com/arrow-kt/arrow/issues/2638)) by
[@&#8203;renovate-bot](https://togithub.com/renovate-bot)
- fix typo comment of circuitbreaker
([#&#8203;2637](https://togithub.com/arrow-kt/arrow/issues/2637)) by
larryjung
- Fixes a few typos on the Fx docs
([#&#8203;2620](https://togithub.com/arrow-kt/arrow/issues/2620)) by
[@&#8203;legzo](https://togithub.com/legzo)
- Update contributing guide with Knit
([#&#8203;2634](https://togithub.com/arrow-kt/arrow/issues/2634)) by
[@&#8203;lukaszkalnik](https://togithub.com/lukaszkalnik)
- \[Optics] Show error for generic classes in KSP plug-in
([#&#8203;2636](https://togithub.com/arrow-kt/arrow/issues/2636)) by
[@&#8203;serras](https://togithub.com/serras)
- Pass Arrow version to publish_doc job
([#&#8203;2633](https://togithub.com/arrow-kt/arrow/issues/2633)) by
[@&#8203;franciscodr](https://togithub.com/franciscodr)
- Fix 404 error in the Core library documentation
([#&#8203;2623](https://togithub.com/arrow-kt/arrow/issues/2623)) by
[@&#8203;devmarkpro](https://togithub.com/devmarkpro)
- Fix Retrofit adapter test configuration
([#&#8203;2624](https://togithub.com/arrow-kt/arrow/issues/2624)) by
[@&#8203;lukaszkalnik](https://togithub.com/lukaszkalnik)
- Update all dependencies
([#&#8203;2628](https://togithub.com/arrow-kt/arrow/issues/2628)) by
[@&#8203;renovate-bot](https://togithub.com/renovate-bot)
- run on windows only windows test
([#&#8203;2630](https://togithub.com/arrow-kt/arrow/issues/2630)) by
[@&#8203;i-walker](https://togithub.com/i-walker)
- Update CONTRIBUTING.md with the new build guide
([#&#8203;2600](https://togithub.com/arrow-kt/arrow/issues/2600)) by
[@&#8203;lukaszkalnik](https://togithub.com/lukaszkalnik)
- Bump Arrow Gradle Config to 0.6.1-rc.4 by
[@&#8203;nomisRev](https://togithub.com/nomisRev)
- \[Github Action] Run build on all platforms
([#&#8203;2626](https://togithub.com/arrow-kt/arrow/issues/2626)) by
[@&#8203;nomisRev](https://togithub.com/nomisRev)
- Disable Gradle scan, and Gradle daemon by
[@&#8203;nomisRev](https://togithub.com/nomisRev)
- Update all dependencies
([#&#8203;2617](https://togithub.com/arrow-kt/arrow/issues/2617)) by
[@&#8203;renovate-bot](https://togithub.com/renovate-bot)
- Disable ksp, and ksp test in Arrow Optics by
[@&#8203;nomisRev](https://togithub.com/nomisRev)
- Use gradle action everywhere, revery permSize, and add
--full-stacktrace everywhere by
[@&#8203;nomisRev](https://togithub.com/nomisRev)
- Make KSP plugin a JVM module by
[@&#8203;nomisRev](https://togithub.com/nomisRev)
- Use gradle action, and add --full-stacktrace by
[@&#8203;nomisRev](https://togithub.com/nomisRev)
- Bump to arrow gradle config rc3 by
[@&#8203;nomisRev](https://togithub.com/nomisRev)
- Revert back to ./gradlew by
[@&#8203;nomisRev](https://togithub.com/nomisRev)
- Fix publish file by [@&#8203;nomisRev](https://togithub.com/nomisRev)
- Use gradle action for publish, and increase timeout time by
[@&#8203;nomisRev](https://togithub.com/nomisRev)
- Setup Java publish.yml by
[@&#8203;nomisRev](https://togithub.com/nomisRev)
- Update publish workflow by
[@&#8203;nomisRev](https://togithub.com/nomisRev)
- Run ./gradlew before get-arrow-version by
[@&#8203;nomisRev](https://togithub.com/nomisRev)
- Update publish.yml by
[@&#8203;nomisRev](https://togithub.com/nomisRev)
- Add lib_version
([#&#8203;2616](https://togithub.com/arrow-kt/arrow/issues/2616)) by
[@&#8203;nomisRev](https://togithub.com/nomisRev)
- Bump Gradle Config to 0.6.1-RC.1
([#&#8203;2615](https://togithub.com/arrow-kt/arrow/issues/2615)) by
[@&#8203;nomisRev](https://togithub.com/nomisRev)
- Update all dependencies
([#&#8203;2566](https://togithub.com/arrow-kt/arrow/issues/2566)) by
[@&#8203;renovate-bot](https://togithub.com/renovate-bot)
- Disable parallel gradle
([#&#8203;2614](https://togithub.com/arrow-kt/arrow/issues/2614)) by
[@&#8203;nomisRev](https://togithub.com/nomisRev)
- Fix Gradle an existing connection was forcibly closed by the remote
host ([#&#8203;2610](https://togithub.com/arrow-kt/arrow/issues/2610))
by [@&#8203;nomisRev](https://togithub.com/nomisRev)
- Update publish gradle opts, and remove gradle cache from tag workflows
by [@&#8203;nomisRev](https://togithub.com/nomisRev)
- Remove gradle cache from publish workflow by
[@&#8203;nomisRev](https://togithub.com/nomisRev)
- Fix Windows env settings in publish workflow
([#&#8203;2609](https://togithub.com/arrow-kt/arrow/issues/2609)) by
[@&#8203;raulraja](https://togithub.com/raulraja)
- Fix `publish` and `pull_request` workflows
([#&#8203;2608](https://togithub.com/arrow-kt/arrow/issues/2608)) by
[@&#8203;JavierSegoviaCordoba](https://togithub.com/JavierSegoviaCordoba)
- Change Java memory settings by
[@&#8203;JavierSegoviaCordoba](https://togithub.com/JavierSegoviaCordoba)
- Add Java and Gradle settings for both generate tag workflows by
[@&#8203;JavierSegoviaCordoba](https://togithub.com/JavierSegoviaCordoba)
- Add `generate-alpha-tag` by
[@&#8203;JavierSegoviaCordoba](https://togithub.com/JavierSegoviaCordoba)
- Change `tags` regex by
[@&#8203;JavierSegoviaCordoba](https://togithub.com/JavierSegoviaCordoba)
- Merge remote-tracking branch 'origin/main' into
rr-js-add-versioning-plugin by
[@&#8203;JavierSegoviaCordoba](https://togithub.com/JavierSegoviaCordoba)
- Re-organize Optics docs
([#&#8203;2583](https://togithub.com/arrow-kt/arrow/issues/2583)) by
[@&#8203;serras](https://togithub.com/serras)
- Fixing documentation workflow
([#&#8203;2594](https://togithub.com/arrow-kt/arrow/issues/2594)) by
[@&#8203;franciscodr](https://togithub.com/franciscodr)
- Upgrade to kotlinx-coroutines 1.6.0
([#&#8203;2606](https://togithub.com/arrow-kt/arrow/issues/2606)) by
[@&#8203;serras](https://togithub.com/serras)
- Job to update the API files
([#&#8203;2605](https://togithub.com/arrow-kt/arrow/issues/2605)) by
[@&#8203;serras](https://togithub.com/serras)
- Rename arrow-optics-ksp to arrow-optics-ksp-plugin
([#&#8203;2604](https://togithub.com/arrow-kt/arrow/issues/2604)) by
[@&#8203;serras](https://togithub.com/serras)
- Remove legacy Meta, bring Optics KSP
([#&#8203;2599](https://togithub.com/arrow-kt/arrow/issues/2599)) by
[@&#8203;nomisRev](https://togithub.com/nomisRev)
- docs(Either): describe the `all` method
([#&#8203;2551](https://togithub.com/arrow-kt/arrow/issues/2551)) by
[@&#8203;codymikol](https://togithub.com/codymikol)
- Make sure listHead set works properly
([#&#8203;2589](https://togithub.com/arrow-kt/arrow/issues/2589)) by
[@&#8203;lenguyenthanh](https://togithub.com/lenguyenthanh)
- Code block style
([#&#8203;2596](https://togithub.com/arrow-kt/arrow/issues/2596)) by
[@&#8203;israelperezglez](https://togithub.com/israelperezglez)
- Add `JAVA_OPTS` and `GRADLE_OPTS` to `publish` and `pull_request` by
[@&#8203;JavierSegoviaCordoba](https://togithub.com/JavierSegoviaCordoba)
- Refactor `publish` and `pull-request` workflows by
[@&#8203;JavierSegoviaCordoba](https://togithub.com/JavierSegoviaCordoba)
- Fix tag regex in `publish` workflow by
[@&#8203;JavierSegoviaCordoba](https://togithub.com/JavierSegoviaCordoba)
- Refactor `publish.yml` workflow and add `generate-tag` workflow by
[@&#8203;JavierSegoviaCordoba](https://togithub.com/JavierSegoviaCordoba)
- Refactor `publish.yml` workflow by
[@&#8203;JavierSegoviaCordoba](https://togithub.com/JavierSegoviaCordoba)
- Add `vcs.xml` by
[@&#8203;JavierSegoviaCordoba](https://togithub.com/JavierSegoviaCordoba)
- versioning plugin by [@&#8203;raulraja](https://togithub.com/raulraja)
- Remove base directory for gradle.properties file
([#&#8203;2585](https://togithub.com/arrow-kt/arrow/issues/2585)) by
[@&#8203;franciscodr](https://togithub.com/franciscodr)
- Simplify Gradle layout, + KNIT, - ANK and fix site code fences
([#&#8203;2584](https://togithub.com/arrow-kt/arrow/issues/2584)) by
[@&#8203;raulraja](https://togithub.com/raulraja)
- Fix bug cancellation parMap
([#&#8203;2579](https://togithub.com/arrow-kt/arrow/issues/2579)) by
[@&#8203;nomisRev](https://togithub.com/nomisRev)
- Resource computation block
([#&#8203;2571](https://togithub.com/arrow-kt/arrow/issues/2571)) by
[@&#8203;nomisRev](https://togithub.com/nomisRev)
- make Semigroup a fun interface
([#&#8203;2569](https://togithub.com/arrow-kt/arrow/issues/2569)) by
[@&#8203;brezinajn](https://togithub.com/brezinajn)
- Update all dependencies (major)
([#&#8203;2567](https://togithub.com/arrow-kt/arrow/issues/2567)) by
[@&#8203;renovate-bot](https://togithub.com/renovate-bot)
- Configure Renovate
([#&#8203;2533](https://togithub.com/arrow-kt/arrow/issues/2533)) by
[@&#8203;renovate-bot](https://togithub.com/renovate-bot)

#### New Contributors

- [@&#8203;brezinajn](https://togithub.com/brezinajn) made their first
contribution in
[arrow-kt/arrow#2569
- [@&#8203;devmarkpro](https://togithub.com/devmarkpro) made their first
contribution in
[arrow-kt/arrow#2623
- [@&#8203;IlyaPomaskin](https://togithub.com/IlyaPomaskin) made their
first contribution in
[arrow-kt/arrow#2627
- [@&#8203;felixdivo](https://togithub.com/felixdivo) made their first
contribution in
[arrow-kt/arrow#2642
- [@&#8203;fo2rist](https://togithub.com/fo2rist) made their first
contribution in
[arrow-kt/arrow#2664
- [@&#8203;SaberCon](https://togithub.com/SaberCon) made their first
contribution in
[arrow-kt/arrow#2667
- [@&#8203;ChristianGarcia](https://togithub.com/ChristianGarcia) made
their first contribution in
[arrow-kt/arrow#2694

**Full Changelog**:
arrow-kt/arrow@1.0.1...1.1.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/elide-dev/v3).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMDIuMCIsInVwZGF0ZWRJblZlciI6IjM0LjEwMi4wIn0=-->
@serras serras deleted the effect-catch branch July 3, 2023 08:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants