Ioeither

ioeither/generic

Code generated by go generate; DO NOT EDIT.

import "github.com/IBM/fp-go/ioeither/generic"

Code generated by go generate; DO NOT EDIT. This file was generated by robots at 2024-02-29 16:19:13.1643755 +0100 CET m=+0.085210801

Functions

func After[GA ~func() ET.Either[E, A], E, A any](timestamp time.Time) func(GA) GA

After creates an operation that passes after the given [time.Time]

func Alt[LAZY ~func() GIOA, GIOA ~func() ET.Either[E, A], E, A any](second LAZY) func(GIOA) GIOA

func AltSemigroup[GIOA ~func() ET.Either[E, A], E, A any]() S.Semigroup[GIOA]

func Ap[GB ~func() ET.Either[E, B], GAB ~func() ET.Either[E, func(A) B], GA ~func() ET.Either[E, A], E, A, B any](ma GA) func(GAB) GB

func ApFirst[GA ~func() ET.Either[E, A], GB ~func() ET.Either[E, B], GBA ~func() ET.Either[E, func(B) A], E, A, B any](second GB) func(GA) GA

ApFirst combines two effectful actions, keeping only the result of the first.

func ApPar[GB ~func() ET.Either[E, B], GAB ~func() ET.Either[E, func(A) B], GA ~func() ET.Either[E, A], E, A, B any](ma GA) func(GAB) GB

func ApS[GS1 ~func() ET.Either[E, S1], GS2 ~func() ET.Either[E, S2], GT ~func() ET.Either[E, T], E, S1, S2, T any]( setter func(T) func(S1) S2, fa GT, ) func(GS1) GS2

ApS attaches a value to a context [S1] to produce a context [S2] by considering the context and the value concurrently

func ApSecond[GA ~func() ET.Either[E, A], GB ~func() ET.Either[E, B], GBB ~func() ET.Either[E, func(B) B], E, A, B any](second GB) func(GA) GB

ApSecond combines two effectful actions, keeping only the result of the second.

func ApSeq[GB ~func() ET.Either[E, B], GAB ~func() ET.Either[E, func(A) B], GA ~func() ET.Either[E, A], E, A, B any](ma GA) func(GAB) GB

func ApplicativeMonoid[GEA ~func() ET.Either[E, A], GEFA ~func() ET.Either[E, func(A) A], E, A any]( m M.Monoid[A], ) M.Monoid[GEA]

func ApplicativeMonoidPar[GEA ~func() ET.Either[E, A], GEFA ~func() ET.Either[E, func(A) A], E, A any]( m M.Monoid[A], ) M.Monoid[GEA]

func ApplicativeMonoidSeq[GEA ~func() ET.Either[E, A], GEFA ~func() ET.Either[E, func(A) A], E, A any]( m M.Monoid[A], ) M.Monoid[GEA]

func BiMap[GA ~func() ET.Either[E1, A], GB ~func() ET.Either[E2, B], E1, E2, A, B any](f func(E1) E2, g func(A) B) func(GA) GB

BiMap maps a pair of functions over the two type arguments of the bifunctor.

func Bind[GS1 ~func() ET.Either[E, S1], GS2 ~func() ET.Either[E, S2], GT ~func() ET.Either[E, T], E, S1, S2, T any]( setter func(T) func(S1) S2, f func(S1) GT, ) func(GS1) GS2

Bind attaches the result of a computation to a context [S1] to produce a context [S2]

func BindTo[GS1 ~func() ET.Either[E, S1], GT ~func() ET.Either[E, T], E, S1, S2, T any]( setter func(T) S1, ) func(GT) GS1

BindTo initializes a new state [S1] from a value [T]

func Bracket[ GA ~func() ET.Either[E, A], GB ~func() ET.Either[E, B], GANY ~func() ET.Either[E, ANY], E, A, B, ANY any]( acquire GA, use func(A) GB, release func(A, ET.Either[E, B]) GANY, ) GB

Bracket makes sure that a resource is cleaned up in the event of an error. The release action is called regardless of whether the body action returns and error or not.

func Chain[GA ~func() ET.Either[E, A], GB ~func() ET.Either[E, B], E, A, B any](f func(A) GB) func(GA) GB

func ChainEitherK[GA ~func() ET.Either[E, A], GB ~func() ET.Either[E, B], E, A, B any](f func(A) ET.Either[E, B]) func(GA) GB

func ChainFirst[GA ~func() ET.Either[E, A], GB ~func() ET.Either[E, B], E, A, B any](f func(A) GB) func(GA) GA

ChainFirst runs the monad returned by the function but returns the result of the original monad

func ChainFirstEitherK[GA ~func() ET.Either[E, A], E, A, B any](f func(A) ET.Either[E, B]) func(GA) GA

ChainFirstEitherK runs the monad returned by the function but returns the result of the original monad

func ChainFirstIOK[GA ~func() ET.Either[E, A], GIOB ~func() B, E, A, B any](f func(A) GIOB) func(GA) GA

ChainFirstIOK runs the monad returned by the function but returns the result of the original monad

func ChainIOK[GA ~func() ET.Either[E, A], GB ~func() ET.Either[E, B], GR ~func() B, E, A, B any](f func(A) GR) func(GA) GB

func ChainOptionK[GA ~func() ET.Either[E, A], GB ~func() ET.Either[E, B], E, A, B any](onNone func() E) func(func(A) O.Option[B]) func(GA) GB

func ChainTo[GA ~func() ET.Either[E, A], GB ~func() ET.Either[E, B], E, A, B any](fb GB) func(GA) GB

func Command[GA ~func() ET.Either[error, exec.CommandOutput]](name string, args []string, in []byte) GA

Command executes a command

func Defer[GEA ~func() ET.Either[E, A], E, A any](gen func() GEA) GEA

Defer creates an IO by creating a brand new IO via a generator function, each time

func Delay[GA ~func() ET.Either[E, A], E, A any](delay time.Duration) func(GA) GA

Delay creates an operation that passes in the value after some [time.Duration]

func Do[GS ~func() ET.Either[E, S], E, S any]( empty S, ) GS

Bind creates an empty context of type [S] to be used with the [Bind] operation

func Eitherize0[GIOA ~func() ET.Either[error, R], F ~func() (R, error), R any](f F) func() GIOA

Eitherize0 converts a function with 0 parameters returning a tuple into a function with 0 parameters returning a [GIOA]

func Eitherize1[GIOA ~func() ET.Either[error, R], F ~func(T1) (R, error), T1, R any](f F) func(T1) GIOA

Eitherize1 converts a function with 1 parameters returning a tuple into a function with 1 parameters returning a [GIOA]

func Eitherize10[GIOA ~func() ET.Either[error, R], F ~func(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) (R, error), T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, R any](f F) func(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) GIOA

Eitherize10 converts a function with 10 parameters returning a tuple into a function with 10 parameters returning a [GIOA]

func Eitherize2[GIOA ~func() ET.Either[error, R], F ~func(T1, T2) (R, error), T1, T2, R any](f F) func(T1, T2) GIOA

Eitherize2 converts a function with 2 parameters returning a tuple into a function with 2 parameters returning a [GIOA]

func Eitherize3[GIOA ~func() ET.Either[error, R], F ~func(T1, T2, T3) (R, error), T1, T2, T3, R any](f F) func(T1, T2, T3) GIOA

Eitherize3 converts a function with 3 parameters returning a tuple into a function with 3 parameters returning a [GIOA]

func Eitherize4[GIOA ~func() ET.Either[error, R], F ~func(T1, T2, T3, T4) (R, error), T1, T2, T3, T4, R any](f F) func(T1, T2, T3, T4) GIOA

Eitherize4 converts a function with 4 parameters returning a tuple into a function with 4 parameters returning a [GIOA]

func Eitherize5[GIOA ~func() ET.Either[error, R], F ~func(T1, T2, T3, T4, T5) (R, error), T1, T2, T3, T4, T5, R any](f F) func(T1, T2, T3, T4, T5) GIOA

Eitherize5 converts a function with 5 parameters returning a tuple into a function with 5 parameters returning a [GIOA]

func Eitherize6[GIOA ~func() ET.Either[error, R], F ~func(T1, T2, T3, T4, T5, T6) (R, error), T1, T2, T3, T4, T5, T6, R any](f F) func(T1, T2, T3, T4, T5, T6) GIOA

Eitherize6 converts a function with 6 parameters returning a tuple into a function with 6 parameters returning a [GIOA]

func Eitherize7[GIOA ~func() ET.Either[error, R], F ~func(T1, T2, T3, T4, T5, T6, T7) (R, error), T1, T2, T3, T4, T5, T6, T7, R any](f F) func(T1, T2, T3, T4, T5, T6, T7) GIOA

Eitherize7 converts a function with 7 parameters returning a tuple into a function with 7 parameters returning a [GIOA]

func Eitherize8[GIOA ~func() ET.Either[error, R], F ~func(T1, T2, T3, T4, T5, T6, T7, T8) (R, error), T1, T2, T3, T4, T5, T6, T7, T8, R any](f F) func(T1, T2, T3, T4, T5, T6, T7, T8) GIOA

Eitherize8 converts a function with 8 parameters returning a tuple into a function with 8 parameters returning a [GIOA]

func Eitherize9[GIOA ~func() ET.Either[error, R], F ~func(T1, T2, T3, T4, T5, T6, T7, T8, T9) (R, error), T1, T2, T3, T4, T5, T6, T7, T8, T9, R any](f F) func(T1, T2, T3, T4, T5, T6, T7, T8, T9) GIOA

Eitherize9 converts a function with 9 parameters returning a tuple into a function with 9 parameters returning a [GIOA]

func Eq[GA ~func() ET.Either[E, A], E, A any](eq EQ.Eq[ET.Either[E, A]]) EQ.Eq[GA]

Eq implements the equals predicate for values contained in the IOEither monad

func Flap[GEAB ~func() ET.Either[E, func(A) B], GEB ~func() ET.Either[E, B], E, B, A any](a A) func(GEAB) GEB

func Flatten[GA ~func() ET.Either[E, A], GAA ~func() ET.Either[E, GA], E, A any](mma GAA) GA

func Fold[GA ~func() ET.Either[E, A], GB ~func() B, E, A, B any](onLeft func(E) GB, onRight func(A) GB) func(GA) GB

Fold convers an IOEither into an IO

func FromEither[GA ~func() ET.Either[E, A], E, A any](e ET.Either[E, A]) GA

func FromIO[GA ~func() ET.Either[E, A], GR ~func() A, E, A any](mr GR) GA

func FromIOOption[GEA ~func() ET.Either[E, A], GA ~func() O.Option[A], E, A any](onNone func() E) func(ioo GA) GEA

func FromImpure[GA ~func() ET.Either[E, any], IMP ~func(), E any](f IMP) GA

FromImpure converts a side effect without a return value into a side effect that returns any

func FromOption[GA ~func() ET.Either[E, A], E, A any](onNone func() E) func(o O.Option[A]) GA

func FromStrictEquals[GA ~func() ET.Either[E, A], E, A comparable]() EQ.Eq[GA]

FromStrictEquals constructs an [EQ.Eq] from the canonical comparison function

func Functor[E, A, B any, GA ~func() ET.Either[E, A], GB ~func() ET.Either[E, B]]() functor.Functor[A, B, GA, GB]

Functor implements the monadic operations for [IOEither]

func GetOrElse[GA ~func() ET.Either[E, A], GB ~func() A, E, A any](onLeft func(E) GB) func(GA) GB

GetOrElse extracts the value or maps the error

func Left[GA ~func() ET.Either[E, A], E, A any](l E) GA

func LeftIO[GA ~func() ET.Either[E, A], GE ~func() E, E, A any](ml GE) GA

func Let[GS1 ~func() ET.Either[E, S1], GS2 ~func() ET.Either[E, S2], E, S1, S2, T any]( key func(T) func(S1) S2, f func(S1) T, ) func(GS1) GS2

Let attaches the result of a computation to a context [S1] to produce a context [S2]

func LetTo[GS1 ~func() ET.Either[E, S1], GS2 ~func() ET.Either[E, S2], E, S1, S2, B any]( key func(B) func(S1) S2, b B, ) func(GS1) GS2

LetTo attaches the a value to a context [S1] to produce a context [S2]

func LogJSON[GA ~func() ET.Either[error, any], A any](prefix string) func(A) GA

LogJSON converts the argument to JSON and then logs it via the format string Can be used with [ChainFirst]

func LogJson[GA ~func() ET.Either[error, any], A any](prefix string) func(A) GA

LogJson converts the argument to JSON and then logs it via the format string Can be used with [ChainFirst]

Deprecated: use [LogJSON] instead

func MakeIO[GA ~func() ET.Either[E, A], E, A any](f GA) GA

func Map[GA ~func() ET.Either[E, A], GB ~func() ET.Either[E, B], E, A, B any](f func(A) B) func(GA) GB

func MapLeft[GA1 ~func() ET.Either[E1, A], GA2 ~func() ET.Either[E2, A], E1, E2, A any](f func(E1) E2) func(GA1) GA2

func MapTo[GA ~func() ET.Either[E, A], GB ~func() ET.Either[E, B], E, A, B any](b B) func(GA) GB

func Memoize[GA ~func() ET.Either[E, A], E, A any](ma GA) GA

Memoize computes the value of the provided IO monad lazily but exactly once

func Monad[E, A, B any, GA ~func() ET.Either[E, A], GB ~func() ET.Either[E, B], GAB ~func() ET.Either[E, func(A) B]]() monad.Monad[A, B, GA, GB, GAB]

Monad implements the monadic operations for [IOEither]

func MonadAlt[LAZY ~func() GIOA, GIOA ~func() ET.Either[E, A], E, A any](first GIOA, second LAZY) GIOA

func MonadAp[GB ~func() ET.Either[E, B], GAB ~func() ET.Either[E, func(A) B], GA ~func() ET.Either[E, A], E, A, B any](mab GAB, ma GA) GB

func MonadApFirst[GA ~func() ET.Either[E, A], GB ~func() ET.Either[E, B], GBA ~func() ET.Either[E, func(B) A], E, A, B any](first GA, second GB) GA

MonadApFirst combines two effectful actions, keeping only the result of the first.

func MonadApPar[GB ~func() ET.Either[E, B], GAB ~func() ET.Either[E, func(A) B], GA ~func() ET.Either[E, A], E, A, B any](mab GAB, ma GA) GB

func MonadApSecond[GA ~func() ET.Either[E, A], GB ~func() ET.Either[E, B], GBB ~func() ET.Either[E, func(B) B], E, A, B any](first GA, second GB) GB

MonadApSecond combines two effectful actions, keeping only the result of the second.

func MonadApSeq[GB ~func() ET.Either[E, B], GAB ~func() ET.Either[E, func(A) B], GA ~func() ET.Either[E, A], E, A, B any](mab GAB, ma GA) GB

func MonadBiMap[GA ~func() ET.Either[E1, A], GB ~func() ET.Either[E2, B], E1, E2, A, B any](fa GA, f func(E1) E2, g func(A) B) GB

func MonadChain[GA ~func() ET.Either[E, A], GB ~func() ET.Either[E, B], E, A, B any](fa GA, f func(A) GB) GB

func MonadChainEitherK[GA ~func() ET.Either[E, A], GB ~func() ET.Either[E, B], E, A, B any](ma GA, f func(A) ET.Either[E, B]) GB

func MonadChainFirst[GA ~func() ET.Either[E, A], GB ~func() ET.Either[E, B], E, A, B any](ma GA, f func(A) GB) GA

MonadChainFirst runs the monad returned by the function but returns the result of the original monad

func MonadChainFirstEitherK[GA ~func() ET.Either[E, A], E, A, B any](first GA, f func(A) ET.Either[E, B]) GA

MonadChainFirstEitherK runs the monad returned by the function but returns the result of the original monad

func MonadChainFirstIOK[GA ~func() ET.Either[E, A], GIOB ~func() B, E, A, B any](first GA, f func(A) GIOB) GA

MonadChainFirstIOK runs the monad returned by the function but returns the result of the original monad

func MonadChainIOK[GA ~func() ET.Either[E, A], GB ~func() ET.Either[E, B], GR ~func() B, E, A, B any](ma GA, f func(A) GR) GB

func MonadChainTo[GA ~func() ET.Either[E, A], GB ~func() ET.Either[E, B], E, A, B any](fa GA, fb GB) GB

func MonadFlap[GEAB ~func() ET.Either[E, func(A) B], GEB ~func() ET.Either[E, B], E, B, A any](fab GEAB, a A) GEB

func MonadFold[GA ~func() ET.Either[E, A], GB ~func() B, E, A, B any](ma GA, onLeft func(E) GB, onRight func(A) GB) GB

func MonadMap[GA ~func() ET.Either[E, A], GB ~func() ET.Either[E, B], E, A, B any](fa GA, f func(A) B) GB

func MonadMapLeft[GA1 ~func() ET.Either[E1, A], GA2 ~func() ET.Either[E2, A], E1, E2, A any](fa GA1, f func(E1) E2) GA2

func MonadMapTo[GA ~func() ET.Either[E, A], GB ~func() ET.Either[E, B], E, A, B any](fa GA, b B) GB

func MonadOf[GA ~func() ET.Either[E, A], E, A any](r A) GA

func MonadTraverseArray[GB ~func() ET.Either[E, B], GBS ~func() ET.Either[E, BBS], AAS ~[]A, BBS ~[]B, E, A, B any](tas AAS, f func(A) GB) GBS

MonadTraverseArray transforms an array

func MonadTraverseArrayPar[GB ~func() ET.Either[E, B], GBS ~func() ET.Either[E, BBS], AAS ~[]A, BBS ~[]B, E, A, B any](tas AAS, f func(A) GB) GBS

MonadTraverseArrayPar transforms an array

func MonadTraverseArraySeq[GB ~func() ET.Either[E, B], GBS ~func() ET.Either[E, BBS], AAS ~[]A, BBS ~[]B, E, A, B any](tas AAS, f func(A) GB) GBS

MonadTraverseArraySeq transforms an array

func MonadTraverseArrayWithIndex[GB ~func() ET.Either[E, B], GBS ~func() ET.Either[E, BBS], AAS ~[]A, BBS ~[]B, E, A, B any](tas AAS, f func(int, A) GB) GBS

MonadTraverseArrayWithIndex transforms an array

func MonadTraverseArrayWithIndexPar[GB ~func() ET.Either[E, B], GBS ~func() ET.Either[E, BBS], AAS ~[]A, BBS ~[]B, E, A, B any](tas AAS, f func(int, A) GB) GBS

MonadTraverseArrayWithIndexPar transforms an array

func MonadTraverseArrayWithIndexSeq[GB ~func() ET.Either[E, B], GBS ~func() ET.Either[E, BBS], AAS ~[]A, BBS ~[]B, E, A, B any](tas AAS, f func(int, A) GB) GBS

MonadTraverseArrayWithIndexSeq transforms an array

func MonadTraverseRecord[GB ~func() ET.Either[E, B], GBS ~func() ET.Either[E, BBS], AAS ~map[K]A, BBS ~map[K]B, K comparable, E, A, B any](tas AAS, f func(A) GB) GBS

MonadTraverseRecord transforms an array

func MonadTraverseRecordPar[GB ~func() ET.Either[E, B], GBS ~func() ET.Either[E, BBS], AAS ~map[K]A, BBS ~map[K]B, K comparable, E, A, B any](tas AAS, f func(A) GB) GBS

MonadTraverseRecordPar transforms an array

func MonadTraverseRecordSeq[GB ~func() ET.Either[E, B], GBS ~func() ET.Either[E, BBS], AAS ~map[K]A, BBS ~map[K]B, K comparable, E, A, B any](tas AAS, f func(A) GB) GBS

MonadTraverseRecordSeq transforms an array

func Of[GA ~func() ET.Either[E, A], E, A any](r A) GA

func OrElse[GA ~func() ET.Either[E, A], E, A any](onLeft func(E) GA) func(GA) GA

OrElse returns the original IOEither if it is a Right, otherwise it applies the given function to the error and returns the result.

func Pointed[E, A any, GA ~func() ET.Either[E, A]]() pointed.Pointed[A, GA]

Pointed implements the pointed operations for [IOEither]

func Retrying[GA ~func() ET.Either[E, A], E, A any]( policy R.RetryPolicy, action func(R.RetryStatus) GA, check func(ET.Either[E, A]) bool, ) GA

Retry combinator for actions that don't raise exceptions, but signal in their type the outcome has failed. Examples are the Option, Either and EitherT monads.

policy - refers to the retry policy action - converts a status into an operation to be executed check - checks if the result of the action needs to be retried

func Right[GA ~func() ET.Either[E, A], E, A any](r A) GA

func RightIO[GA ~func() ET.Either[E, A], GR ~func() A, E, A any](mr GR) GA

func SequenceArray[GA ~func() ET.Either[E, A], GAS ~func() ET.Either[E, AAS], AAS ~[]A, GAAS ~[]GA, E, A any](tas GAAS) GAS

SequenceArray converts a homogeneous sequence of either into an either of sequence

func SequenceArrayPar[GA ~func() ET.Either[E, A], GAS ~func() ET.Either[E, AAS], AAS ~[]A, GAAS ~[]GA, E, A any](tas GAAS) GAS

SequenceArrayPar converts a homogeneous sequence of either into an either of sequence

func SequenceArraySeq[GA ~func() ET.Either[E, A], GAS ~func() ET.Either[E, AAS], AAS ~[]A, GAAS ~[]GA, E, A any](tas GAAS) GAS

SequenceArraySeq converts a homogeneous sequence of either into an either of sequence

func SequenceRecord[GA ~func() ET.Either[E, A], GAS ~func() ET.Either[E, AAS], AAS ~map[K]A, GAAS ~map[K]GA, K comparable, E, A any](tas GAAS) GAS

SequenceRecord converts a homogeneous sequence of either into an either of sequence

func SequenceRecordPar[GA ~func() ET.Either[E, A], GAS ~func() ET.Either[E, AAS], AAS ~map[K]A, GAAS ~map[K]GA, K comparable, E, A any](tas GAAS) GAS

SequenceRecordPar converts a homogeneous sequence of either into an either of sequence

func SequenceRecordSeq[GA ~func() ET.Either[E, A], GAS ~func() ET.Either[E, AAS], AAS ~map[K]A, GAAS ~map[K]GA, K comparable, E, A any](tas GAAS) GAS

SequenceRecordSeq converts a homogeneous sequence of either into an either of sequence

func SequenceT1[ G_TUPLE1 ~func() ET.Either[E, T.Tuple1[T1]], G_T1 ~func() ET.Either[E, T1], E, T1 any]( t1 G_T1, ) G_TUPLE1

SequenceT1 converts 1 [func() ET.Either[E, T]] into a [func() ET.Either[E, T.Tuple1[T1]]]

func SequenceT10[ G_TUPLE10 ~func() ET.Either[E, T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]], G_T1 ~func() ET.Either[E, T1], G_T2 ~func() ET.Either[E, T2], G_T3 ~func() ET.Either[E, T3], G_T4 ~func() ET.Either[E, T4], G_T5 ~func() ET.Either[E, T5], G_T6 ~func() ET.Either[E, T6], G_T7 ~func() ET.Either[E, T7], G_T8 ~func() ET.Either[E, T8], G_T9 ~func() ET.Either[E, T9], G_T10 ~func() ET.Either[E, T10], E, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 any]( t1 G_T1, t2 G_T2, t3 G_T3, t4 G_T4, t5 G_T5, t6 G_T6, t7 G_T7, t8 G_T8, t9 G_T9, t10 G_T10, ) G_TUPLE10

SequenceT10 converts 10 [func() ET.Either[E, T]] into a [func() ET.Either[E, T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]]]

func SequenceT2[ G_TUPLE2 ~func() ET.Either[E, T.Tuple2[T1, T2]], G_T1 ~func() ET.Either[E, T1], G_T2 ~func() ET.Either[E, T2], E, T1, T2 any]( t1 G_T1, t2 G_T2, ) G_TUPLE2

SequenceT2 converts 2 [func() ET.Either[E, T]] into a [func() ET.Either[E, T.Tuple2[T1, T2]]]

func SequenceT3[ G_TUPLE3 ~func() ET.Either[E, T.Tuple3[T1, T2, T3]], G_T1 ~func() ET.Either[E, T1], G_T2 ~func() ET.Either[E, T2], G_T3 ~func() ET.Either[E, T3], E, T1, T2, T3 any]( t1 G_T1, t2 G_T2, t3 G_T3, ) G_TUPLE3

SequenceT3 converts 3 [func() ET.Either[E, T]] into a [func() ET.Either[E, T.Tuple3[T1, T2, T3]]]

func SequenceT4[ G_TUPLE4 ~func() ET.Either[E, T.Tuple4[T1, T2, T3, T4]], G_T1 ~func() ET.Either[E, T1], G_T2 ~func() ET.Either[E, T2], G_T3 ~func() ET.Either[E, T3], G_T4 ~func() ET.Either[E, T4], E, T1, T2, T3, T4 any]( t1 G_T1, t2 G_T2, t3 G_T3, t4 G_T4, ) G_TUPLE4

SequenceT4 converts 4 [func() ET.Either[E, T]] into a [func() ET.Either[E, T.Tuple4[T1, T2, T3, T4]]]

func SequenceT5[ G_TUPLE5 ~func() ET.Either[E, T.Tuple5[T1, T2, T3, T4, T5]], G_T1 ~func() ET.Either[E, T1], G_T2 ~func() ET.Either[E, T2], G_T3 ~func() ET.Either[E, T3], G_T4 ~func() ET.Either[E, T4], G_T5 ~func() ET.Either[E, T5], E, T1, T2, T3, T4, T5 any]( t1 G_T1, t2 G_T2, t3 G_T3, t4 G_T4, t5 G_T5, ) G_TUPLE5

SequenceT5 converts 5 [func() ET.Either[E, T]] into a [func() ET.Either[E, T.Tuple5[T1, T2, T3, T4, T5]]]

func SequenceT6[ G_TUPLE6 ~func() ET.Either[E, T.Tuple6[T1, T2, T3, T4, T5, T6]], G_T1 ~func() ET.Either[E, T1], G_T2 ~func() ET.Either[E, T2], G_T3 ~func() ET.Either[E, T3], G_T4 ~func() ET.Either[E, T4], G_T5 ~func() ET.Either[E, T5], G_T6 ~func() ET.Either[E, T6], E, T1, T2, T3, T4, T5, T6 any]( t1 G_T1, t2 G_T2, t3 G_T3, t4 G_T4, t5 G_T5, t6 G_T6, ) G_TUPLE6

SequenceT6 converts 6 [func() ET.Either[E, T]] into a [func() ET.Either[E, T.Tuple6[T1, T2, T3, T4, T5, T6]]]

func SequenceT7[ G_TUPLE7 ~func() ET.Either[E, T.Tuple7[T1, T2, T3, T4, T5, T6, T7]], G_T1 ~func() ET.Either[E, T1], G_T2 ~func() ET.Either[E, T2], G_T3 ~func() ET.Either[E, T3], G_T4 ~func() ET.Either[E, T4], G_T5 ~func() ET.Either[E, T5], G_T6 ~func() ET.Either[E, T6], G_T7 ~func() ET.Either[E, T7], E, T1, T2, T3, T4, T5, T6, T7 any]( t1 G_T1, t2 G_T2, t3 G_T3, t4 G_T4, t5 G_T5, t6 G_T6, t7 G_T7, ) G_TUPLE7

SequenceT7 converts 7 [func() ET.Either[E, T]] into a [func() ET.Either[E, T.Tuple7[T1, T2, T3, T4, T5, T6, T7]]]

func SequenceT8[ G_TUPLE8 ~func() ET.Either[E, T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]], G_T1 ~func() ET.Either[E, T1], G_T2 ~func() ET.Either[E, T2], G_T3 ~func() ET.Either[E, T3], G_T4 ~func() ET.Either[E, T4], G_T5 ~func() ET.Either[E, T5], G_T6 ~func() ET.Either[E, T6], G_T7 ~func() ET.Either[E, T7], G_T8 ~func() ET.Either[E, T8], E, T1, T2, T3, T4, T5, T6, T7, T8 any]( t1 G_T1, t2 G_T2, t3 G_T3, t4 G_T4, t5 G_T5, t6 G_T6, t7 G_T7, t8 G_T8, ) G_TUPLE8

SequenceT8 converts 8 [func() ET.Either[E, T]] into a [func() ET.Either[E, T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]]]

func SequenceT9[ G_TUPLE9 ~func() ET.Either[E, T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]], G_T1 ~func() ET.Either[E, T1], G_T2 ~func() ET.Either[E, T2], G_T3 ~func() ET.Either[E, T3], G_T4 ~func() ET.Either[E, T4], G_T5 ~func() ET.Either[E, T5], G_T6 ~func() ET.Either[E, T6], G_T7 ~func() ET.Either[E, T7], G_T8 ~func() ET.Either[E, T8], G_T9 ~func() ET.Either[E, T9], E, T1, T2, T3, T4, T5, T6, T7, T8, T9 any]( t1 G_T1, t2 G_T2, t3 G_T3, t4 G_T4, t5 G_T5, t6 G_T6, t7 G_T7, t8 G_T8, t9 G_T9, ) G_TUPLE9

SequenceT9 converts 9 [func() ET.Either[E, T]] into a [func() ET.Either[E, T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]]]

func SequenceTuple1[ G_TUPLE1 ~func() ET.Either[E, T.Tuple1[T1]], G_T1 ~func() ET.Either[E, T1], E, T1 any](t T.Tuple1[G_T1]) G_TUPLE1

SequenceTuple1 converts a [T.Tuple1[func() ET.Either[E, T]]] into a [func() ET.Either[E, T.Tuple1[T1]]]

func SequenceTuple10[ G_TUPLE10 ~func() ET.Either[E, T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]], G_T1 ~func() ET.Either[E, T1], G_T2 ~func() ET.Either[E, T2], G_T3 ~func() ET.Either[E, T3], G_T4 ~func() ET.Either[E, T4], G_T5 ~func() ET.Either[E, T5], G_T6 ~func() ET.Either[E, T6], G_T7 ~func() ET.Either[E, T7], G_T8 ~func() ET.Either[E, T8], G_T9 ~func() ET.Either[E, T9], G_T10 ~func() ET.Either[E, T10], E, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 any](t T.Tuple10[G_T1, G_T2, G_T3, G_T4, G_T5, G_T6, G_T7, G_T8, G_T9, G_T10]) G_TUPLE10

SequenceTuple10 converts a [T.Tuple10[func() ET.Either[E, T]]] into a [func() ET.Either[E, T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]]]

func SequenceTuple2[ G_TUPLE2 ~func() ET.Either[E, T.Tuple2[T1, T2]], G_T1 ~func() ET.Either[E, T1], G_T2 ~func() ET.Either[E, T2], E, T1, T2 any](t T.Tuple2[G_T1, G_T2]) G_TUPLE2

SequenceTuple2 converts a [T.Tuple2[func() ET.Either[E, T]]] into a [func() ET.Either[E, T.Tuple2[T1, T2]]]

func SequenceTuple3[ G_TUPLE3 ~func() ET.Either[E, T.Tuple3[T1, T2, T3]], G_T1 ~func() ET.Either[E, T1], G_T2 ~func() ET.Either[E, T2], G_T3 ~func() ET.Either[E, T3], E, T1, T2, T3 any](t T.Tuple3[G_T1, G_T2, G_T3]) G_TUPLE3

SequenceTuple3 converts a [T.Tuple3[func() ET.Either[E, T]]] into a [func() ET.Either[E, T.Tuple3[T1, T2, T3]]]

func SequenceTuple4[ G_TUPLE4 ~func() ET.Either[E, T.Tuple4[T1, T2, T3, T4]], G_T1 ~func() ET.Either[E, T1], G_T2 ~func() ET.Either[E, T2], G_T3 ~func() ET.Either[E, T3], G_T4 ~func() ET.Either[E, T4], E, T1, T2, T3, T4 any](t T.Tuple4[G_T1, G_T2, G_T3, G_T4]) G_TUPLE4

SequenceTuple4 converts a [T.Tuple4[func() ET.Either[E, T]]] into a [func() ET.Either[E, T.Tuple4[T1, T2, T3, T4]]]

func SequenceTuple5[ G_TUPLE5 ~func() ET.Either[E, T.Tuple5[T1, T2, T3, T4, T5]], G_T1 ~func() ET.Either[E, T1], G_T2 ~func() ET.Either[E, T2], G_T3 ~func() ET.Either[E, T3], G_T4 ~func() ET.Either[E, T4], G_T5 ~func() ET.Either[E, T5], E, T1, T2, T3, T4, T5 any](t T.Tuple5[G_T1, G_T2, G_T3, G_T4, G_T5]) G_TUPLE5

SequenceTuple5 converts a [T.Tuple5[func() ET.Either[E, T]]] into a [func() ET.Either[E, T.Tuple5[T1, T2, T3, T4, T5]]]

func SequenceTuple6[ G_TUPLE6 ~func() ET.Either[E, T.Tuple6[T1, T2, T3, T4, T5, T6]], G_T1 ~func() ET.Either[E, T1], G_T2 ~func() ET.Either[E, T2], G_T3 ~func() ET.Either[E, T3], G_T4 ~func() ET.Either[E, T4], G_T5 ~func() ET.Either[E, T5], G_T6 ~func() ET.Either[E, T6], E, T1, T2, T3, T4, T5, T6 any](t T.Tuple6[G_T1, G_T2, G_T3, G_T4, G_T5, G_T6]) G_TUPLE6

SequenceTuple6 converts a [T.Tuple6[func() ET.Either[E, T]]] into a [func() ET.Either[E, T.Tuple6[T1, T2, T3, T4, T5, T6]]]

func SequenceTuple7[ G_TUPLE7 ~func() ET.Either[E, T.Tuple7[T1, T2, T3, T4, T5, T6, T7]], G_T1 ~func() ET.Either[E, T1], G_T2 ~func() ET.Either[E, T2], G_T3 ~func() ET.Either[E, T3], G_T4 ~func() ET.Either[E, T4], G_T5 ~func() ET.Either[E, T5], G_T6 ~func() ET.Either[E, T6], G_T7 ~func() ET.Either[E, T7], E, T1, T2, T3, T4, T5, T6, T7 any](t T.Tuple7[G_T1, G_T2, G_T3, G_T4, G_T5, G_T6, G_T7]) G_TUPLE7

SequenceTuple7 converts a [T.Tuple7[func() ET.Either[E, T]]] into a [func() ET.Either[E, T.Tuple7[T1, T2, T3, T4, T5, T6, T7]]]

func SequenceTuple8[ G_TUPLE8 ~func() ET.Either[E, T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]], G_T1 ~func() ET.Either[E, T1], G_T2 ~func() ET.Either[E, T2], G_T3 ~func() ET.Either[E, T3], G_T4 ~func() ET.Either[E, T4], G_T5 ~func() ET.Either[E, T5], G_T6 ~func() ET.Either[E, T6], G_T7 ~func() ET.Either[E, T7], G_T8 ~func() ET.Either[E, T8], E, T1, T2, T3, T4, T5, T6, T7, T8 any](t T.Tuple8[G_T1, G_T2, G_T3, G_T4, G_T5, G_T6, G_T7, G_T8]) G_TUPLE8

SequenceTuple8 converts a [T.Tuple8[func() ET.Either[E, T]]] into a [func() ET.Either[E, T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]]]

func SequenceTuple9[ G_TUPLE9 ~func() ET.Either[E, T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]], G_T1 ~func() ET.Either[E, T1], G_T2 ~func() ET.Either[E, T2], G_T3 ~func() ET.Either[E, T3], G_T4 ~func() ET.Either[E, T4], G_T5 ~func() ET.Either[E, T5], G_T6 ~func() ET.Either[E, T6], G_T7 ~func() ET.Either[E, T7], G_T8 ~func() ET.Either[E, T8], G_T9 ~func() ET.Either[E, T9], E, T1, T2, T3, T4, T5, T6, T7, T8, T9 any](t T.Tuple9[G_T1, G_T2, G_T3, G_T4, G_T5, G_T6, G_T7, G_T8, G_T9]) G_TUPLE9

SequenceTuple9 converts a [T.Tuple9[func() ET.Either[E, T]]] into a [func() ET.Either[E, T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]]]

func Swap[GEA ~func() ET.Either[E, A], GAE ~func() ET.Either[A, E], E, A any](val GEA) GAE

Swap changes the order of type parameters

func ToIOOption[GA ~func() O.Option[A], GEA ~func() ET.Either[E, A], E, A any](ioe GEA) GA

func TraverseArray[GB ~func() ET.Either[E, B], GBS ~func() ET.Either[E, BBS], AAS ~[]A, BBS ~[]B, E, A, B any](f func(A) GB) func(AAS) GBS

TraverseArray transforms an array

func TraverseArrayPar[GB ~func() ET.Either[E, B], GBS ~func() ET.Either[E, BBS], AAS ~[]A, BBS ~[]B, E, A, B any](f func(A) GB) func(AAS) GBS

TraverseArrayPar transforms an array

func TraverseArraySeq[GB ~func() ET.Either[E, B], GBS ~func() ET.Either[E, BBS], AAS ~[]A, BBS ~[]B, E, A, B any](f func(A) GB) func(AAS) GBS

TraverseArraySeq transforms an array

func TraverseArrayWithIndex[GB ~func() ET.Either[E, B], GBS ~func() ET.Either[E, BBS], AAS ~[]A, BBS ~[]B, E, A, B any](f func(int, A) GB) func(AAS) GBS

TraverseArrayWithIndex transforms an array

func TraverseArrayWithIndexPar[GB ~func() ET.Either[E, B], GBS ~func() ET.Either[E, BBS], AAS ~[]A, BBS ~[]B, E, A, B any](f func(int, A) GB) func(AAS) GBS

TraverseArrayWithIndexPar transforms an array

func TraverseArrayWithIndexSeq[GB ~func() ET.Either[E, B], GBS ~func() ET.Either[E, BBS], AAS ~[]A, BBS ~[]B, E, A, B any](f func(int, A) GB) func(AAS) GBS

TraverseArrayWithIndexSeq transforms an array

func TraverseRecord[GB ~func() ET.Either[E, B], GBS ~func() ET.Either[E, BBS], AAS ~map[K]A, BBS ~map[K]B, K comparable, E, A, B any](f func(A) GB) func(AAS) GBS

TraverseRecord transforms an array

func TraverseRecordPar[GB ~func() ET.Either[E, B], GBS ~func() ET.Either[E, BBS], AAS ~map[K]A, BBS ~map[K]B, K comparable, E, A, B any](f func(A) GB) func(AAS) GBS

TraverseRecordPar transforms an array

func TraverseRecordSeq[GB ~func() ET.Either[E, B], GBS ~func() ET.Either[E, BBS], AAS ~map[K]A, BBS ~map[K]B, K comparable, E, A, B any](f func(A) GB) func(AAS) GBS

TraverseRecordSeq transforms an array

func TraverseRecordWithIndex[GB ~func() ET.Either[E, B], GBS ~func() ET.Either[E, BBS], AAS ~map[K]A, BBS ~map[K]B, K comparable, E, A, B any](f func(K, A) GB) func(AAS) GBS

TraverseRecordWithIndex transforms an array

func TraverseRecordWithIndexPar[GB ~func() ET.Either[E, B], GBS ~func() ET.Either[E, BBS], AAS ~map[K]A, BBS ~map[K]B, K comparable, E, A, B any](f func(K, A) GB) func(AAS) GBS

TraverseRecordWithIndexPar transforms an array

func TraverseRecordWithIndexSeq[GB ~func() ET.Either[E, B], GBS ~func() ET.Either[E, BBS], AAS ~map[K]A, BBS ~map[K]B, K comparable, E, A, B any](f func(K, A) GB) func(AAS) GBS

TraverseRecordWithIndexSeq transforms an array

func TraverseTuple1[ G_TUPLE1 ~func() ET.Either[E, T.Tuple1[T1]], F1 ~func(A1) G_T1, G_T1 ~func() ET.Either[E, T1], E, A1, T1 any](f1 F1) func(T.Tuple1[A1]) G_TUPLE1

TraverseTuple1 converts a [T.Tuple1[func() ET.Either[E, T]]] into a [func() ET.Either[E, T.Tuple1[T1]]]

func TraverseTuple10[ G_TUPLE10 ~func() ET.Either[E, T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]], F1 ~func(A1) G_T1, F2 ~func(A2) G_T2, F3 ~func(A3) G_T3, F4 ~func(A4) G_T4, F5 ~func(A5) G_T5, F6 ~func(A6) G_T6, F7 ~func(A7) G_T7, F8 ~func(A8) G_T8, F9 ~func(A9) G_T9, F10 ~func(A10) G_T10, G_T1 ~func() ET.Either[E, T1], G_T2 ~func() ET.Either[E, T2], G_T3 ~func() ET.Either[E, T3], G_T4 ~func() ET.Either[E, T4], G_T5 ~func() ET.Either[E, T5], G_T6 ~func() ET.Either[E, T6], G_T7 ~func() ET.Either[E, T7], G_T8 ~func() ET.Either[E, T8], G_T9 ~func() ET.Either[E, T9], G_T10 ~func() ET.Either[E, T10], E, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6, f7 F7, f8 F8, f9 F9, f10 F10) func(T.Tuple10[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10]) G_TUPLE10

TraverseTuple10 converts a [T.Tuple10[func() ET.Either[E, T]]] into a [func() ET.Either[E, T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]]]

func TraverseTuple2[ G_TUPLE2 ~func() ET.Either[E, T.Tuple2[T1, T2]], F1 ~func(A1) G_T1, F2 ~func(A2) G_T2, G_T1 ~func() ET.Either[E, T1], G_T2 ~func() ET.Either[E, T2], E, A1, A2, T1, T2 any](f1 F1, f2 F2) func(T.Tuple2[A1, A2]) G_TUPLE2

TraverseTuple2 converts a [T.Tuple2[func() ET.Either[E, T]]] into a [func() ET.Either[E, T.Tuple2[T1, T2]]]

func TraverseTuple3[ G_TUPLE3 ~func() ET.Either[E, T.Tuple3[T1, T2, T3]], F1 ~func(A1) G_T1, F2 ~func(A2) G_T2, F3 ~func(A3) G_T3, G_T1 ~func() ET.Either[E, T1], G_T2 ~func() ET.Either[E, T2], G_T3 ~func() ET.Either[E, T3], E, A1, A2, A3, T1, T2, T3 any](f1 F1, f2 F2, f3 F3) func(T.Tuple3[A1, A2, A3]) G_TUPLE3

TraverseTuple3 converts a [T.Tuple3[func() ET.Either[E, T]]] into a [func() ET.Either[E, T.Tuple3[T1, T2, T3]]]

func TraverseTuple4[ G_TUPLE4 ~func() ET.Either[E, T.Tuple4[T1, T2, T3, T4]], F1 ~func(A1) G_T1, F2 ~func(A2) G_T2, F3 ~func(A3) G_T3, F4 ~func(A4) G_T4, G_T1 ~func() ET.Either[E, T1], G_T2 ~func() ET.Either[E, T2], G_T3 ~func() ET.Either[E, T3], G_T4 ~func() ET.Either[E, T4], E, A1, A2, A3, A4, T1, T2, T3, T4 any](f1 F1, f2 F2, f3 F3, f4 F4) func(T.Tuple4[A1, A2, A3, A4]) G_TUPLE4

TraverseTuple4 converts a [T.Tuple4[func() ET.Either[E, T]]] into a [func() ET.Either[E, T.Tuple4[T1, T2, T3, T4]]]

func TraverseTuple5[ G_TUPLE5 ~func() ET.Either[E, T.Tuple5[T1, T2, T3, T4, T5]], F1 ~func(A1) G_T1, F2 ~func(A2) G_T2, F3 ~func(A3) G_T3, F4 ~func(A4) G_T4, F5 ~func(A5) G_T5, G_T1 ~func() ET.Either[E, T1], G_T2 ~func() ET.Either[E, T2], G_T3 ~func() ET.Either[E, T3], G_T4 ~func() ET.Either[E, T4], G_T5 ~func() ET.Either[E, T5], E, A1, A2, A3, A4, A5, T1, T2, T3, T4, T5 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5) func(T.Tuple5[A1, A2, A3, A4, A5]) G_TUPLE5

TraverseTuple5 converts a [T.Tuple5[func() ET.Either[E, T]]] into a [func() ET.Either[E, T.Tuple5[T1, T2, T3, T4, T5]]]

func TraverseTuple6[ G_TUPLE6 ~func() ET.Either[E, T.Tuple6[T1, T2, T3, T4, T5, T6]], F1 ~func(A1) G_T1, F2 ~func(A2) G_T2, F3 ~func(A3) G_T3, F4 ~func(A4) G_T4, F5 ~func(A5) G_T5, F6 ~func(A6) G_T6, G_T1 ~func() ET.Either[E, T1], G_T2 ~func() ET.Either[E, T2], G_T3 ~func() ET.Either[E, T3], G_T4 ~func() ET.Either[E, T4], G_T5 ~func() ET.Either[E, T5], G_T6 ~func() ET.Either[E, T6], E, A1, A2, A3, A4, A5, A6, T1, T2, T3, T4, T5, T6 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6) func(T.Tuple6[A1, A2, A3, A4, A5, A6]) G_TUPLE6

TraverseTuple6 converts a [T.Tuple6[func() ET.Either[E, T]]] into a [func() ET.Either[E, T.Tuple6[T1, T2, T3, T4, T5, T6]]]

func TraverseTuple7[ G_TUPLE7 ~func() ET.Either[E, T.Tuple7[T1, T2, T3, T4, T5, T6, T7]], F1 ~func(A1) G_T1, F2 ~func(A2) G_T2, F3 ~func(A3) G_T3, F4 ~func(A4) G_T4, F5 ~func(A5) G_T5, F6 ~func(A6) G_T6, F7 ~func(A7) G_T7, G_T1 ~func() ET.Either[E, T1], G_T2 ~func() ET.Either[E, T2], G_T3 ~func() ET.Either[E, T3], G_T4 ~func() ET.Either[E, T4], G_T5 ~func() ET.Either[E, T5], G_T6 ~func() ET.Either[E, T6], G_T7 ~func() ET.Either[E, T7], E, A1, A2, A3, A4, A5, A6, A7, T1, T2, T3, T4, T5, T6, T7 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6, f7 F7) func(T.Tuple7[A1, A2, A3, A4, A5, A6, A7]) G_TUPLE7

TraverseTuple7 converts a [T.Tuple7[func() ET.Either[E, T]]] into a [func() ET.Either[E, T.Tuple7[T1, T2, T3, T4, T5, T6, T7]]]

func TraverseTuple8[ G_TUPLE8 ~func() ET.Either[E, T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]], F1 ~func(A1) G_T1, F2 ~func(A2) G_T2, F3 ~func(A3) G_T3, F4 ~func(A4) G_T4, F5 ~func(A5) G_T5, F6 ~func(A6) G_T6, F7 ~func(A7) G_T7, F8 ~func(A8) G_T8, G_T1 ~func() ET.Either[E, T1], G_T2 ~func() ET.Either[E, T2], G_T3 ~func() ET.Either[E, T3], G_T4 ~func() ET.Either[E, T4], G_T5 ~func() ET.Either[E, T5], G_T6 ~func() ET.Either[E, T6], G_T7 ~func() ET.Either[E, T7], G_T8 ~func() ET.Either[E, T8], E, A1, A2, A3, A4, A5, A6, A7, A8, T1, T2, T3, T4, T5, T6, T7, T8 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6, f7 F7, f8 F8) func(T.Tuple8[A1, A2, A3, A4, A5, A6, A7, A8]) G_TUPLE8

TraverseTuple8 converts a [T.Tuple8[func() ET.Either[E, T]]] into a [func() ET.Either[E, T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]]]

func TraverseTuple9[ G_TUPLE9 ~func() ET.Either[E, T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]], F1 ~func(A1) G_T1, F2 ~func(A2) G_T2, F3 ~func(A3) G_T3, F4 ~func(A4) G_T4, F5 ~func(A5) G_T5, F6 ~func(A6) G_T6, F7 ~func(A7) G_T7, F8 ~func(A8) G_T8, F9 ~func(A9) G_T9, G_T1 ~func() ET.Either[E, T1], G_T2 ~func() ET.Either[E, T2], G_T3 ~func() ET.Either[E, T3], G_T4 ~func() ET.Either[E, T4], G_T5 ~func() ET.Either[E, T5], G_T6 ~func() ET.Either[E, T6], G_T7 ~func() ET.Either[E, T7], G_T8 ~func() ET.Either[E, T8], G_T9 ~func() ET.Either[E, T9], E, A1, A2, A3, A4, A5, A6, A7, A8, A9, T1, T2, T3, T4, T5, T6, T7, T8, T9 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6, f7 F7, f8 F8, f9 F9) func(T.Tuple9[A1, A2, A3, A4, A5, A6, A7, A8, A9]) G_TUPLE9

TraverseTuple9 converts a [T.Tuple9[func() ET.Either[E, T]]] into a [func() ET.Either[E, T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]]]

func TryCatch[GA ~func() ET.Either[E, A], E, A any](f func() (A, error), onThrow func(error) E) GA

func TryCatchError[GA ~func() ET.Either[error, A], A any](f func() (A, error)) GA

func Uneitherize0[GIOA ~func() ET.Either[error, R], GTA ~func() GIOA, R any](f GTA) func() (R, error)

Uneitherize0 converts a function with 0 parameters returning a tuple into a function with 0 parameters returning a [GIOA]

func Uneitherize1[GIOA ~func() ET.Either[error, R], GTA ~func(T1) GIOA, T1, R any](f GTA) func(T1) (R, error)

Uneitherize1 converts a function with 1 parameters returning a tuple into a function with 1 parameters returning a [GIOA]

func Uneitherize10[GIOA ~func() ET.Either[error, R], GTA ~func(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) GIOA, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, R any](f GTA) func(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) (R, error)

Uneitherize10 converts a function with 10 parameters returning a tuple into a function with 10 parameters returning a [GIOA]

func Uneitherize2[GIOA ~func() ET.Either[error, R], GTA ~func(T1, T2) GIOA, T1, T2, R any](f GTA) func(T1, T2) (R, error)

Uneitherize2 converts a function with 2 parameters returning a tuple into a function with 2 parameters returning a [GIOA]

func Uneitherize3[GIOA ~func() ET.Either[error, R], GTA ~func(T1, T2, T3) GIOA, T1, T2, T3, R any](f GTA) func(T1, T2, T3) (R, error)

Uneitherize3 converts a function with 3 parameters returning a tuple into a function with 3 parameters returning a [GIOA]

func Uneitherize4[GIOA ~func() ET.Either[error, R], GTA ~func(T1, T2, T3, T4) GIOA, T1, T2, T3, T4, R any](f GTA) func(T1, T2, T3, T4) (R, error)

Uneitherize4 converts a function with 4 parameters returning a tuple into a function with 4 parameters returning a [GIOA]

func Uneitherize5[GIOA ~func() ET.Either[error, R], GTA ~func(T1, T2, T3, T4, T5) GIOA, T1, T2, T3, T4, T5, R any](f GTA) func(T1, T2, T3, T4, T5) (R, error)

Uneitherize5 converts a function with 5 parameters returning a tuple into a function with 5 parameters returning a [GIOA]

func Uneitherize6[GIOA ~func() ET.Either[error, R], GTA ~func(T1, T2, T3, T4, T5, T6) GIOA, T1, T2, T3, T4, T5, T6, R any](f GTA) func(T1, T2, T3, T4, T5, T6) (R, error)

Uneitherize6 converts a function with 6 parameters returning a tuple into a function with 6 parameters returning a [GIOA]

func Uneitherize7[GIOA ~func() ET.Either[error, R], GTA ~func(T1, T2, T3, T4, T5, T6, T7) GIOA, T1, T2, T3, T4, T5, T6, T7, R any](f GTA) func(T1, T2, T3, T4, T5, T6, T7) (R, error)

Uneitherize7 converts a function with 7 parameters returning a tuple into a function with 7 parameters returning a [GIOA]

func Uneitherize8[GIOA ~func() ET.Either[error, R], GTA ~func(T1, T2, T3, T4, T5, T6, T7, T8) GIOA, T1, T2, T3, T4, T5, T6, T7, T8, R any](f GTA) func(T1, T2, T3, T4, T5, T6, T7, T8) (R, error)

Uneitherize8 converts a function with 8 parameters returning a tuple into a function with 8 parameters returning a [GIOA]

func Uneitherize9[GIOA ~func() ET.Either[error, R], GTA ~func(T1, T2, T3, T4, T5, T6, T7, T8, T9) GIOA, T1, T2, T3, T4, T5, T6, T7, T8, T9, R any](f GTA) func(T1, T2, T3, T4, T5, T6, T7, T8, T9) (R, error)

Uneitherize9 converts a function with 9 parameters returning a tuple into a function with 9 parameters returning a [GIOA]

func WithLock[GA ~func() ET.Either[E, A], E, A any](lock func() context.CancelFunc) func(fa GA) GA

WithLock executes the provided IO operation in the scope of a lock

func WithResource[ GA ~func() ET.Either[E, A], GR ~func() ET.Either[E, R], GANY ~func() ET.Either[E, ANY], E, R, A, ANY any](onCreate GR, onRelease func(R) GANY) func(func(R) GA) GA

WithResource constructs a function that creates a resource, then operates on it and then releases the resource