generic

package
v1.0.121 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 7, 2024 License: Apache-2.0 Imports: 26 Imported by: 1

Documentation

Overview

Code generated by go generate; DO NOT EDIT. This file was generated by robots at 2023-10-23 08:30:58.6556525 +0200 CEST m=+0.090214601

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func After added in v1.0.97

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 added in v1.0.31

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

func AltSemigroup added in v1.0.31

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

func Ap

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

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 added in v1.0.4

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 added in v1.0.20

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

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 added in v1.0.4

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 added in v1.0.31

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 added in v1.0.31

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 added in v1.0.31

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

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 added in v1.0.20

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 added in v1.0.20

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

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

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

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

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 added in v1.0.58

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

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

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

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

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

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

Command executes a command

func Defer

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

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 added in v1.0.107

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

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

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 added in v1.0.7

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

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

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

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 added in v1.0.7

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 added in v1.0.7

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 added in v1.0.7

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 added in v1.0.7

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 added in v1.0.7

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

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 added in v1.0.46

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

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

func Fold

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

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

func FromIO

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

func FromIOOption added in v1.0.59

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

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

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

func FromStrictEquals

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 GetOrElse

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

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

func LeftIO

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

func Let added in v1.0.20

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 added in v1.0.107

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 added in v1.0.118

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 deprecated added in v1.0.99

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

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

func Map

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

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

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

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 MonadAlt added in v1.0.31

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

func MonadAp

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

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 added in v1.0.4

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

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 added in v1.0.4

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

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

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

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

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 added in v1.0.58

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

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

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

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 added in v1.0.46

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

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

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

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

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

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

func MonadTraverseArray

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 added in v1.0.61

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 added in v1.0.61

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 added in v1.0.29

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 added in v1.0.61

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 added in v1.0.61

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

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 added in v1.0.61

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 added in v1.0.61

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

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

func Retrying

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

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

func SequenceArray

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 added in v1.0.61

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 added in v1.0.61

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

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 added in v1.0.61

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 added in v1.0.61

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

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 added in v1.0.7

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

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

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

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 added in v1.0.7

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 added in v1.0.7

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 added in v1.0.7

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 added in v1.0.7

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 added in v1.0.7

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 added in v1.0.7

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 added in v1.0.7

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 added in v1.0.7

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 added in v1.0.7

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 added in v1.0.7

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 added in v1.0.7

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 added in v1.0.7

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 added in v1.0.7

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 added in v1.0.7

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 added in v1.0.7

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

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 added in v1.0.59

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

func TraverseArray

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 added in v1.0.61

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 added in v1.0.61

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 added in v1.0.29

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 added in v1.0.61

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 added in v1.0.61

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

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 added in v1.0.61

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 added in v1.0.61

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 added in v1.0.29

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 added in v1.0.61

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 added in v1.0.61

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 added in v1.0.7

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 added in v1.0.7

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 added in v1.0.7

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 added in v1.0.7

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 added in v1.0.7

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 added in v1.0.7

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 added in v1.0.7

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 added in v1.0.7

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 added in v1.0.7

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 added in v1.0.7

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

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

func TryCatchError

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

func Uneitherize0

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

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 added in v1.0.7

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

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

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

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 added in v1.0.7

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 added in v1.0.7

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 added in v1.0.7

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 added in v1.0.7

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 added in v1.0.7

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 added in v1.0.50

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

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

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL