generic

package
v1.0.152 Latest Latest
Warning

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

Go to latest
Published: Mar 5, 2025 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Alt added in v1.0.31

func Alt[LAZY ~func() GEA, GEA ~func(context.Context) GIOA, GIOA ~func() E.Either[error, A], A any](second LAZY) func(GEA) GEA

func AltSemigroup added in v1.0.31

func AltSemigroup[GRA ~func(context.Context) GIOA, GIOA ~func() ET.Either[error, A], A any]() S.Semigroup[GRA]

func Ap

func Ap[
	GRB ~func(context.Context) GIOB,
	GRAB ~func(context.Context) GIOAB,
	GRA ~func(context.Context) GIOA,

	GIOB ~func() E.Either[error, B],
	GIOAB ~func() E.Either[error, func(A) B],
	GIOA ~func() E.Either[error, A],

	A, B any](fa GRA) func(GRAB) GRB

func ApPar added in v1.0.4

func ApPar[
	GRB ~func(context.Context) GIOB,
	GRAB ~func(context.Context) GIOAB,
	GRA ~func(context.Context) GIOA,

	GIOB ~func() E.Either[error, B],
	GIOAB ~func() E.Either[error, func(A) B],
	GIOA ~func() E.Either[error, A],

	A, B any](fa GRA) func(GRAB) GRB

func ApS added in v1.0.107

func ApS[GRTS1 ~func(context.Context) GTS1, GRS1 ~func(context.Context) GS1, GRS2 ~func(context.Context) GS2, GRT ~func(context.Context) GT, GTS1 ~func() ET.Either[error, func(T) S2], GS1 ~func() ET.Either[error, S1], GS2 ~func() ET.Either[error, S2], GT ~func() ET.Either[error, T], S1, S2, T any](
	setter func(T) func(S1) S2,
	fa GRT,
) func(GRS1) GRS2

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

func ApSeq added in v1.0.4

func ApSeq[
	GRB ~func(context.Context) GIOB,
	GRAB ~func(context.Context) GIOAB,
	GRA ~func(context.Context) GIOA,

	GIOB ~func() E.Either[error, B],
	GIOAB ~func() E.Either[error, func(A) B],
	GIOA ~func() E.Either[error, A],

	A, B any](fa GRA) func(GRAB) GRB

func ApplicativeMonoid added in v1.0.31

func ApplicativeMonoid[GRA ~func(context.Context) GIOA, GRFA ~func(context.Context) GIOFA, GIOA ~func() ET.Either[error, A], GIOFA ~func() ET.Either[error, func(A) A], A any](
	m M.Monoid[A],
) M.Monoid[GRA]

func ApplicativeMonoidPar added in v1.0.31

func ApplicativeMonoidPar[GRA ~func(context.Context) GIOA, GRFA ~func(context.Context) GIOFA, GIOA ~func() ET.Either[error, A], GIOFA ~func() ET.Either[error, func(A) A], A any](
	m M.Monoid[A],
) M.Monoid[GRA]

func ApplicativeMonoidSeq added in v1.0.31

func ApplicativeMonoidSeq[GRA ~func(context.Context) GIOA, GRFA ~func(context.Context) GIOFA, GIOA ~func() ET.Either[error, A], GIOFA ~func() ET.Either[error, func(A) A], A any](
	m M.Monoid[A],
) M.Monoid[GRA]

func Ask

func Ask[
	GRA ~func(context.Context) GIOA,
	GIOA ~func() E.Either[error, context.Context],

]() GRA

func Asks

func Asks[
	GRA ~func(context.Context) GIOA,
	GRB ~func(context.Context) A,
	GIOA ~func() E.Either[error, A],

	A any](r GRB) GRA

func Bind added in v1.0.107

func Bind[GRS1 ~func(context.Context) GS1, GRS2 ~func(context.Context) GS2, GRT ~func(context.Context) GT, GS1 ~func() ET.Either[error, S1], GS2 ~func() ET.Either[error, S2], GT ~func() ET.Either[error, T], S1, S2, T any](
	setter func(T) func(S1) S2,
	f func(S1) GRT,
) func(GRS1) GRS2

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

func BindTo added in v1.0.107

func BindTo[GRS1 ~func(context.Context) GS1, GRT ~func(context.Context) GT, GS1 ~func() ET.Either[error, S1], GT ~func() ET.Either[error, T], S1, T any](
	setter func(T) S1,
) func(GRT) GRS1

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

func Bracket added in v1.0.50

func Bracket[
	GA ~func(context.Context) TA,
	GB ~func(context.Context) TB,
	GANY ~func(context.Context) TANY,

	TA ~func() E.Either[error, A],
	TB ~func() E.Either[error, B],
	TANY ~func() E.Either[error, ANY],

	A, B, ANY any](

	acquire GA,
	use func(A) GB,
	release func(A, E.Either[error, 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[
	GRA ~func(context.Context) GIOA,
	GRB ~func(context.Context) GIOB,

	GIOA ~func() E.Either[error, A],
	GIOB ~func() E.Either[error, B],

	A, B any](f func(A) GRB) func(GRA) GRB

func ChainEitherK

func ChainEitherK[
	GRA ~func(context.Context) GIOA,
	GRB ~func(context.Context) GIOB,
	GIOA ~func() E.Either[error, A],

	GIOB ~func() E.Either[error, B],

	A, B any](f func(A) E.Either[error, B]) func(ma GRA) GRB

func ChainFirst

func ChainFirst[
	GRA ~func(context.Context) GIOA,
	GRB ~func(context.Context) GIOB,

	GIOA ~func() E.Either[error, A],
	GIOB ~func() E.Either[error, B],

	A, B any](f func(A) GRB) func(GRA) GRA

func ChainFirstEitherK

func ChainFirstEitherK[
	GRA ~func(context.Context) GIOA,
	GIOA ~func() E.Either[error, A],

	A, B any](f func(A) E.Either[error, B]) func(ma GRA) GRA

func ChainFirstIOK

func ChainFirstIOK[
	GRA ~func(context.Context) GIOA,
	GIOA ~func() E.Either[error, A],

	GIO ~func() B,

	A, B any](f func(A) GIO) func(ma GRA) GRA

func ChainIOEitherK

func ChainIOEitherK[
	GRA ~func(context.Context) GIOA,
	GRB ~func(context.Context) GIOB,
	GIOA ~func() E.Either[error, A],

	GIOB ~func() E.Either[error, B],

	A, B any](f func(A) GIOB) func(ma GRA) GRB

func ChainIOK

func ChainIOK[
	GRB ~func(context.Context) GIOB,
	GRA ~func(context.Context) GIOA,
	GIOA ~func() E.Either[error, A],

	GIOB ~func() E.Either[error, B],

	GIO ~func() B,

	A, B any](f func(A) GIO) func(ma GRA) GRB

func ChainOptionK

func ChainOptionK[
	GRA ~func(context.Context) GIOA,
	GRB ~func(context.Context) GIOB,

	GIOB ~func() E.Either[error, B],

	GIOA ~func() E.Either[error, A],

	A, B any](onNone func() error) func(func(A) O.Option[B]) func(GRA) GRB

func ChainReaderIOK added in v1.0.42

func ChainReaderIOK[
	GRB ~func(context.Context) GIOB,
	GRA ~func(context.Context) GIOA,
	GRIO ~func(context.Context) GIO,

	GIOA ~func() E.Either[error, A],
	GIOB ~func() E.Either[error, B],

	GIO ~func() B,

	A, B any](f func(A) GRIO) func(ma GRA) GRB

func Defer

func Defer[
	GRA ~func(context.Context) GIOA,
	GIOA ~func() E.Either[error, A],

	A any](gen func() GRA) GRA

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

func Delay

func Delay[
	GRA ~func(context.Context) GIOA,
	GIOA ~func() E.Either[error, A],

	A any](delay time.Duration) func(ma GRA) GRA

Delay creates an operation that passes in the value after some delay

func Do added in v1.0.107

func Do[GRS ~func(context.Context) GS, GS ~func() ET.Either[error, S], S any](
	empty S,
) GRS

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

func Eitherize0

func Eitherize0[GRA ~func(context.Context) GIOA, F ~func(context.Context) (R, error), GIOA ~func() E.Either[error, R], R any](f F) func() GRA

Eitherize0 converts a function with 0 parameters returning a tuple into a function with 0 parameters returning a [GRA] The inverse function is Uneitherize0

func Eitherize1

func Eitherize1[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0) (R, error), GIOA ~func() E.Either[error, R], T0, R any](f F) func(T0) GRA

Eitherize1 converts a function with 1 parameters returning a tuple into a function with 1 parameters returning a [GRA] The inverse function is Uneitherize1

func Eitherize10

func Eitherize10[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) GRA

Eitherize10 converts a function with 10 parameters returning a tuple into a function with 10 parameters returning a [GRA] The inverse function is Uneitherize10

func Eitherize2

func Eitherize2[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1) (R, error), GIOA ~func() E.Either[error, R], T0, T1, R any](f F) func(T0, T1) GRA

Eitherize2 converts a function with 2 parameters returning a tuple into a function with 2 parameters returning a [GRA] The inverse function is Uneitherize2

func Eitherize3

func Eitherize3[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, R any](f F) func(T0, T1, T2) GRA

Eitherize3 converts a function with 3 parameters returning a tuple into a function with 3 parameters returning a [GRA] The inverse function is Uneitherize3

func Eitherize4

func Eitherize4[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2, T3) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, R any](f F) func(T0, T1, T2, T3) GRA

Eitherize4 converts a function with 4 parameters returning a tuple into a function with 4 parameters returning a [GRA] The inverse function is Uneitherize4

func Eitherize5

func Eitherize5[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2, T3, T4) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, R any](f F) func(T0, T1, T2, T3, T4) GRA

Eitherize5 converts a function with 5 parameters returning a tuple into a function with 5 parameters returning a [GRA] The inverse function is Uneitherize5

func Eitherize6

func Eitherize6[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2, T3, T4, T5) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, R any](f F) func(T0, T1, T2, T3, T4, T5) GRA

Eitherize6 converts a function with 6 parameters returning a tuple into a function with 6 parameters returning a [GRA] The inverse function is Uneitherize6

func Eitherize7

func Eitherize7[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2, T3, T4, T5, T6) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, R any](f F) func(T0, T1, T2, T3, T4, T5, T6) GRA

Eitherize7 converts a function with 7 parameters returning a tuple into a function with 7 parameters returning a [GRA] The inverse function is Uneitherize7

func Eitherize8

func Eitherize8[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2, T3, T4, T5, T6, T7) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, T7, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7) GRA

Eitherize8 converts a function with 8 parameters returning a tuple into a function with 8 parameters returning a [GRA] The inverse function is Uneitherize8

func Eitherize9

func Eitherize9[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2, T3, T4, T5, T6, T7, T8) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, T7, T8, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8) GRA

Eitherize9 converts a function with 9 parameters returning a tuple into a function with 9 parameters returning a [GRA] The inverse function is Uneitherize9

func Eq

func Eq[GRA ~func(context.Context) GIOA, GIOA ~func() E.Either[error, A], A any](eq EQ.Eq[E.Either[error, A]]) func(context.Context) EQ.Eq[GRA]

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

func Flap added in v1.0.46

func Flap[GREAB ~func(context.Context) GEAB, GREB ~func(context.Context) GEB, GEAB ~func() E.Either[error, func(A) B], GEB ~func() E.Either[error, B], B, A any](a A) func(GREAB) GREB

func Flatten added in v1.0.37

func Flatten[
	GGRA ~func(context.Context) GGIOA,
	GGIOA ~func() E.Either[error, GRA],
	GRA ~func(context.Context) GIOA,
	GIOA ~func() E.Either[error, A],
	A any](rdr GGRA) GRA

func Fold

func Fold[
	GRB ~func(context.Context) GIOB,
	GRA ~func(context.Context) GIOA,

	GIOA ~func() E.Either[error, A],
	GIOB ~func() B,

	A, B any](onLeft func(error) GRB, onRight func(A) GRB) func(GRA) GRB

func FromEither

func FromEither[
	GRA ~func(context.Context) GIOA,
	GIOA ~func() E.Either[error, A],
	A any](e E.Either[error, A]) GRA

func FromIO

func FromIO[
	GRA ~func(context.Context) GIOA,
	GIOB ~func() A,

	GIOA ~func() E.Either[error, A],

	A any](t GIOB) GRA

func FromIOEither

func FromIOEither[
	GRA ~func(context.Context) GIOA,
	GIOA ~func() E.Either[error, A],

	A any](t GIOA) GRA

func FromPredicate

func FromPredicate[
	GRA ~func(context.Context) GIOA,
	GIOA ~func() E.Either[error, A],

	A any](pred func(A) bool, onFalse func(A) error) func(A) GRA

func FromReader

func FromReader[
	GRA ~func(context.Context) GIOA,
	GR ~func(context.Context) A,
	GIOA ~func() E.Either[error, A],
	A any](r GR) GRA

func FromReaderIO added in v1.0.43

func FromReaderIO[
	GRIOEA ~func(context.Context) GIOEA,
	GIOEA ~func() E.Either[error, A],

	GRIOA ~func(context.Context) GIOA,
	GIOA ~func() A,

	A any](f func(A) GRIOA) func(A) GRIOEA

func GetOrElse

func GetOrElse[
	GRB ~func(context.Context) GIOB,
	GRA ~func(context.Context) GIOA,
	GIOA ~func() E.Either[error, A],

	GIOB ~func() A,

	A any](onLeft func(error) GRB) func(GRA) GRB

func Left

func Left[
	GRA ~func(context.Context) GIOA,
	GIOA ~func() E.Either[error, A],
	A any](l error) GRA

func LeftReader

func LeftReader[
	GRA ~func(context.Context) GIOA,
	GR ~func(context.Context) error,
	GIOA ~func() E.Either[error, A],
	A any](l GR) GRA

func LeftReaderIO added in v1.0.43

func LeftReaderIO[
	GRIOEA ~func(context.Context) GIOEA,
	GIOEA ~func() E.Either[error, A],

	GRIOE ~func(context.Context) GIOE,
	GIOE ~func() error,

	A any](ma GRIOE) GRIOEA

func Let added in v1.0.107

func Let[GRS1 ~func(context.Context) GS1, GRS2 ~func(context.Context) GS2, GS1 ~func() ET.Either[error, S1], GS2 ~func() ET.Either[error, S2], S1, S2, T any](
	key func(T) func(S1) S2,
	f func(S1) T,
) func(GRS1) GRS2

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[GRS1 ~func(context.Context) GS1, GRS2 ~func(context.Context) GS2, GS1 ~func() ET.Either[error, S1], GS2 ~func() ET.Either[error, S2], S1, S2, B any](
	key func(B) func(S1) S2,
	b B,
) func(GRS1) GRS2

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

func Map

func Map[
	GRA ~func(context.Context) GIOA,
	GRB ~func(context.Context) GIOB,

	GIOA ~func() E.Either[error, A],
	GIOB ~func() E.Either[error, B],

	A, B any](f func(A) B) func(GRA) GRB

func MapTo added in v1.0.34

func MapTo[
	GRA ~func(context.Context) GIOA,
	GRB ~func(context.Context) GIOB,

	GIOA ~func() E.Either[error, A],
	GIOB ~func() E.Either[error, B],

	A, B any](b B) func(GRA) GRB

func Memoize added in v1.0.36

func Memoize[
	GRA ~func(context.Context) GIOA,
	GIOA ~func() E.Either[error, A],
	A any](rdr GRA) GRA

Memoize computes the value of the provided monad lazily but exactly once The context used to compute the value is the context of the first call, so do not use this method if the value has a functional dependency on the content of the context

func MonadAlt added in v1.0.31

func MonadAlt[LAZY ~func() GEA, GEA ~func(context.Context) GIOA, GIOA ~func() E.Either[error, A], A any](first GEA, second LAZY) GEA

func MonadAp

func MonadAp[
	GRB ~func(context.Context) GIOB,
	GRA ~func(context.Context) GIOA,
	GRAB ~func(context.Context) GIOAB,

	GIOA ~func() E.Either[error, A],
	GIOB ~func() E.Either[error, B],
	GIOAB ~func() E.Either[error, func(A) B],

	A, B any](fab GRAB, fa GRA) GRB

MonadAp implements the `Ap` function for a reader with context. It creates a sub-context that will be canceled if any of the input operations errors out or

func MonadApPar added in v1.0.4

func MonadApPar[
	GRB ~func(context.Context) GIOB,
	GRA ~func(context.Context) GIOA,
	GRAB ~func(context.Context) GIOAB,

	GIOA ~func() E.Either[error, A],
	GIOB ~func() E.Either[error, B],
	GIOAB ~func() E.Either[error, func(A) B],

	A, B any](fab GRAB, fa GRA) GRB

MonadAp implements the `Ap` function for a reader with context. It creates a sub-context that will be canceled if any of the input operations errors out or

func MonadApSeq added in v1.0.4

func MonadApSeq[
	GRB ~func(context.Context) GIOB,
	GRA ~func(context.Context) GIOA,
	GRAB ~func(context.Context) GIOAB,

	GIOA ~func() E.Either[error, A],
	GIOB ~func() E.Either[error, B],
	GIOAB ~func() E.Either[error, func(A) B],

	A, B any](fab GRAB, fa GRA) GRB

MonadApSeq implements the `Ap` function for a reader with context. It creates a sub-context that will be canceled if any of the input operations errors out or

func MonadChain

func MonadChain[
	GRA ~func(context.Context) GIOA,
	GRB ~func(context.Context) GIOB,

	GIOA ~func() E.Either[error, A],
	GIOB ~func() E.Either[error, B],

	A, B any](ma GRA, f func(A) GRB) GRB

func MonadChainEitherK

func MonadChainEitherK[
	GRA ~func(context.Context) GIOA,
	GRB ~func(context.Context) GIOB,
	GIOA ~func() E.Either[error, A],

	GIOB ~func() E.Either[error, B],

	A, B any](ma GRA, f func(A) E.Either[error, B]) GRB

func MonadChainFirst

func MonadChainFirst[
	GRA ~func(context.Context) GIOA,
	GRB ~func(context.Context) GIOB,

	GIOA ~func() E.Either[error, A],
	GIOB ~func() E.Either[error, B],

	A, B any](ma GRA, f func(A) GRB) GRA

func MonadChainFirstEitherK

func MonadChainFirstEitherK[
	GRA ~func(context.Context) GIOA,
	GIOA ~func() E.Either[error, A],

	A, B any](ma GRA, f func(A) E.Either[error, B]) GRA

func MonadChainFirstIOK

func MonadChainFirstIOK[
	GRA ~func(context.Context) GIOA,
	GIOA ~func() E.Either[error, A],

	GIO ~func() B,

	A, B any](ma GRA, f func(A) GIO) GRA

func MonadChainIOK

func MonadChainIOK[
	GRB ~func(context.Context) GIOB,
	GRA ~func(context.Context) GIOA,
	GIOA ~func() E.Either[error, A],

	GIOB ~func() E.Either[error, B],

	GIO ~func() B,

	A, B any](ma GRA, f func(A) GIO) GRB

func MonadChainReaderIOK added in v1.0.42

func MonadChainReaderIOK[
	GRB ~func(context.Context) GIOB,
	GRA ~func(context.Context) GIOA,
	GRIO ~func(context.Context) GIO,

	GIOA ~func() E.Either[error, A],
	GIOB ~func() E.Either[error, B],

	GIO ~func() B,

	A, B any](ma GRA, f func(A) GRIO) GRB

func MonadFlap added in v1.0.46

func MonadFlap[GREAB ~func(context.Context) GEAB, GREB ~func(context.Context) GEB, GEAB ~func() E.Either[error, func(A) B], GEB ~func() E.Either[error, B], B, A any](fab GREAB, a A) GREB

func MonadFromReaderIO added in v1.0.43

func MonadFromReaderIO[
	GRIOEA ~func(context.Context) GIOEA,
	GIOEA ~func() E.Either[error, A],

	GRIOA ~func(context.Context) GIOA,
	GIOA ~func() A,

	A any](a A, f func(A) GRIOA) GRIOEA

func MonadMap

func MonadMap[
	GRA ~func(context.Context) GIOA,
	GRB ~func(context.Context) GIOB,

	GIOA ~func() E.Either[error, A],
	GIOB ~func() E.Either[error, B],

	A, B any](fa GRA, f func(A) B) GRB

func MonadMapTo added in v1.0.34

func MonadMapTo[
	GRA ~func(context.Context) GIOA,
	GRB ~func(context.Context) GIOB,

	GIOA ~func() E.Either[error, A],
	GIOB ~func() E.Either[error, B],

	A, B any](fa GRA, b B) GRB

func MonadTraverseArray added in v1.0.3

func MonadTraverseArray[
	AS ~[]A,
	GRBS ~func(context.Context) GIOBS,
	GRB ~func(context.Context) GIOB,
	GIOBS ~func() E.Either[error, BS],
	GIOB ~func() E.Either[error, B],
	BS ~[]B,
	A, B any](as AS, f func(A) GRB) GRBS

MonadTraverseArray transforms an array

func MonadTraverseArrayPar added in v1.0.61

func MonadTraverseArrayPar[
	AS ~[]A,
	GRBS ~func(context.Context) GIOBS,
	GRB ~func(context.Context) GIOB,
	GIOBS ~func() E.Either[error, BS],
	GIOB ~func() E.Either[error, B],
	BS ~[]B,
	A, B any](as AS, f func(A) GRB) GRBS

MonadTraverseArrayPar transforms an array

func MonadTraverseArraySeq added in v1.0.61

func MonadTraverseArraySeq[
	AS ~[]A,
	GRBS ~func(context.Context) GIOBS,
	GRB ~func(context.Context) GIOB,
	GIOBS ~func() E.Either[error, BS],
	GIOB ~func() E.Either[error, B],
	BS ~[]B,
	A, B any](as AS, f func(A) GRB) GRBS

MonadTraverseArraySeq transforms an array

func MonadTraverseRecord added in v1.0.3

func MonadTraverseRecord[K comparable,
	AS ~map[K]A,
	GRBS ~func(context.Context) GIOBS,
	GRB ~func(context.Context) GIOB,
	GIOBS ~func() E.Either[error, BS],
	GIOB ~func() E.Either[error, B],
	BS ~map[K]B,

	A, B any](ma AS, f func(A) GRB) GRBS

MonadTraverseRecord transforms a record

func MonadTraverseRecordPar added in v1.0.61

func MonadTraverseRecordPar[K comparable,
	AS ~map[K]A,
	GRBS ~func(context.Context) GIOBS,
	GRB ~func(context.Context) GIOB,
	GIOBS ~func() E.Either[error, BS],
	GIOB ~func() E.Either[error, B],
	BS ~map[K]B,

	A, B any](ma AS, f func(A) GRB) GRBS

MonadTraverseRecordPar transforms a record

func MonadTraverseRecordSeq added in v1.0.61

func MonadTraverseRecordSeq[K comparable,
	AS ~map[K]A,
	GRBS ~func(context.Context) GIOBS,
	GRB ~func(context.Context) GIOB,
	GIOBS ~func() E.Either[error, BS],
	GIOB ~func() E.Either[error, B],
	BS ~map[K]B,

	A, B any](ma AS, f func(A) GRB) GRBS

MonadTraverseRecordSeq transforms a record

func Never

func Never[
	GRA ~func(context.Context) GIOA,
	GIOA ~func() E.Either[error, A],

	A any]() GRA

Never returns a 'ReaderIOEither' that never returns, except if its context gets canceled

func Of

func Of[
	GRA ~func(context.Context) GIOA,
	GIOA ~func() E.Either[error, A],

	A any](a A) GRA

func OrElse

func OrElse[
	GRA ~func(context.Context) GIOA,
	GIOA ~func() E.Either[error, A],

	A any](onLeft func(error) GRA) func(GRA) GRA

func OrLeft

func OrLeft[
	GRA ~func(context.Context) GIOA,
	GRB ~func(context.Context) GIOB,
	GIOA ~func() E.Either[error, A],

	GIOB ~func() error,

	A any](onLeft func(error) GRB) func(GRA) GRA
func Right[
	GRA ~func(context.Context) GIOA,
	GIOA ~func() E.Either[error, A],
	A any](r A) GRA

func RightReader

func RightReader[
	GRA ~func(context.Context) GIOA,
	GR ~func(context.Context) A,
	GIOA ~func() E.Either[error, A],
	A any](r GR) GRA

func RightReaderIO added in v1.0.43

func RightReaderIO[
	GRIOEA ~func(context.Context) GIOEA,
	GIOEA ~func() E.Either[error, A],

	GRIOA ~func(context.Context) GIOA,
	GIOA ~func() A,

	A any](ma GRIOA) GRIOEA

func SequenceArray

func SequenceArray[
	AS ~[]A,
	GAS ~[]GRA,
	GRAS ~func(context.Context) GIOAS,
	GRA ~func(context.Context) GIOA,
	GIOAS ~func() E.Either[error, AS],
	GIOA ~func() E.Either[error, A],
	A any](ma GAS) GRAS

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

func SequenceArrayPar added in v1.0.61

func SequenceArrayPar[
	AS ~[]A,
	GAS ~[]GRA,
	GRAS ~func(context.Context) GIOAS,
	GRA ~func(context.Context) GIOA,
	GIOAS ~func() E.Either[error, AS],
	GIOA ~func() E.Either[error, A],
	A any](ma GAS) GRAS

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

func SequenceArraySeq added in v1.0.61

func SequenceArraySeq[
	AS ~[]A,
	GAS ~[]GRA,
	GRAS ~func(context.Context) GIOAS,
	GRA ~func(context.Context) GIOA,
	GIOAS ~func() E.Either[error, AS],
	GIOA ~func() E.Either[error, A],
	A any](ma GAS) GRAS

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

func SequenceParT1 added in v1.0.4

func SequenceParT1[
	GR_TUPLE1 ~func(context.Context) GIO_TUPLE1,
	GR_T1 ~func(context.Context) GIO_T1,
	GIO_TUPLE1 ~func() E.Either[error, T.Tuple1[T1]],
	GIO_T1 ~func() E.Either[error, T1],
	T1 any](
	t1 GR_T1,
) GR_TUPLE1

SequenceParT1 converts 1 readers into a reader of a [T.Tuple1].

func SequenceParT10 added in v1.0.4

func SequenceParT10[
	GR_TUPLE10 ~func(context.Context) GIO_TUPLE10,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GR_T8 ~func(context.Context) GIO_T8,
	GR_T9 ~func(context.Context) GIO_T9,
	GR_T10 ~func(context.Context) GIO_T10,
	GIO_TUPLE10 ~func() E.Either[error, T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	GIO_T8 ~func() E.Either[error, T8],
	GIO_T9 ~func() E.Either[error, T9],
	GIO_T10 ~func() E.Either[error, T10],
	T1,
	T2,
	T3,
	T4,
	T5,
	T6,
	T7,
	T8,
	T9,
	T10 any](
	t1 GR_T1,
	t2 GR_T2,
	t3 GR_T3,
	t4 GR_T4,
	t5 GR_T5,
	t6 GR_T6,
	t7 GR_T7,
	t8 GR_T8,
	t9 GR_T9,
	t10 GR_T10,
) GR_TUPLE10

SequenceParT10 converts 10 readers into a reader of a [T.Tuple10].

func SequenceParT2 added in v1.0.4

func SequenceParT2[
	GR_TUPLE2 ~func(context.Context) GIO_TUPLE2,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GIO_TUPLE2 ~func() E.Either[error, T.Tuple2[T1, T2]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	T1,
	T2 any](
	t1 GR_T1,
	t2 GR_T2,
) GR_TUPLE2

SequenceParT2 converts 2 readers into a reader of a [T.Tuple2].

func SequenceParT3 added in v1.0.4

func SequenceParT3[
	GR_TUPLE3 ~func(context.Context) GIO_TUPLE3,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GIO_TUPLE3 ~func() E.Either[error, T.Tuple3[T1, T2, T3]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	T1,
	T2,
	T3 any](
	t1 GR_T1,
	t2 GR_T2,
	t3 GR_T3,
) GR_TUPLE3

SequenceParT3 converts 3 readers into a reader of a [T.Tuple3].

func SequenceParT4 added in v1.0.4

func SequenceParT4[
	GR_TUPLE4 ~func(context.Context) GIO_TUPLE4,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GIO_TUPLE4 ~func() E.Either[error, T.Tuple4[T1, T2, T3, T4]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	T1,
	T2,
	T3,
	T4 any](
	t1 GR_T1,
	t2 GR_T2,
	t3 GR_T3,
	t4 GR_T4,
) GR_TUPLE4

SequenceParT4 converts 4 readers into a reader of a [T.Tuple4].

func SequenceParT5 added in v1.0.4

func SequenceParT5[
	GR_TUPLE5 ~func(context.Context) GIO_TUPLE5,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GIO_TUPLE5 ~func() E.Either[error, T.Tuple5[T1, T2, T3, T4, T5]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	T1,
	T2,
	T3,
	T4,
	T5 any](
	t1 GR_T1,
	t2 GR_T2,
	t3 GR_T3,
	t4 GR_T4,
	t5 GR_T5,
) GR_TUPLE5

SequenceParT5 converts 5 readers into a reader of a [T.Tuple5].

func SequenceParT6 added in v1.0.4

func SequenceParT6[
	GR_TUPLE6 ~func(context.Context) GIO_TUPLE6,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GIO_TUPLE6 ~func() E.Either[error, T.Tuple6[T1, T2, T3, T4, T5, T6]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	T1,
	T2,
	T3,
	T4,
	T5,
	T6 any](
	t1 GR_T1,
	t2 GR_T2,
	t3 GR_T3,
	t4 GR_T4,
	t5 GR_T5,
	t6 GR_T6,
) GR_TUPLE6

SequenceParT6 converts 6 readers into a reader of a [T.Tuple6].

func SequenceParT7 added in v1.0.4

func SequenceParT7[
	GR_TUPLE7 ~func(context.Context) GIO_TUPLE7,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GIO_TUPLE7 ~func() E.Either[error, T.Tuple7[T1, T2, T3, T4, T5, T6, T7]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	T1,
	T2,
	T3,
	T4,
	T5,
	T6,
	T7 any](
	t1 GR_T1,
	t2 GR_T2,
	t3 GR_T3,
	t4 GR_T4,
	t5 GR_T5,
	t6 GR_T6,
	t7 GR_T7,
) GR_TUPLE7

SequenceParT7 converts 7 readers into a reader of a [T.Tuple7].

func SequenceParT8 added in v1.0.4

func SequenceParT8[
	GR_TUPLE8 ~func(context.Context) GIO_TUPLE8,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GR_T8 ~func(context.Context) GIO_T8,
	GIO_TUPLE8 ~func() E.Either[error, T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	GIO_T8 ~func() E.Either[error, T8],
	T1,
	T2,
	T3,
	T4,
	T5,
	T6,
	T7,
	T8 any](
	t1 GR_T1,
	t2 GR_T2,
	t3 GR_T3,
	t4 GR_T4,
	t5 GR_T5,
	t6 GR_T6,
	t7 GR_T7,
	t8 GR_T8,
) GR_TUPLE8

SequenceParT8 converts 8 readers into a reader of a [T.Tuple8].

func SequenceParT9 added in v1.0.4

func SequenceParT9[
	GR_TUPLE9 ~func(context.Context) GIO_TUPLE9,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GR_T8 ~func(context.Context) GIO_T8,
	GR_T9 ~func(context.Context) GIO_T9,
	GIO_TUPLE9 ~func() E.Either[error, T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	GIO_T8 ~func() E.Either[error, T8],
	GIO_T9 ~func() E.Either[error, T9],
	T1,
	T2,
	T3,
	T4,
	T5,
	T6,
	T7,
	T8,
	T9 any](
	t1 GR_T1,
	t2 GR_T2,
	t3 GR_T3,
	t4 GR_T4,
	t5 GR_T5,
	t6 GR_T6,
	t7 GR_T7,
	t8 GR_T8,
	t9 GR_T9,
) GR_TUPLE9

SequenceParT9 converts 9 readers into a reader of a [T.Tuple9].

func SequenceParTuple1 added in v1.0.4

func SequenceParTuple1[
	GR_TUPLE1 ~func(context.Context) GIO_TUPLE1,
	GR_T1 ~func(context.Context) GIO_T1,
	GIO_TUPLE1 ~func() E.Either[error, T.Tuple1[T1]],
	GIO_T1 ~func() E.Either[error, T1],
	T1 any](t T.Tuple1[GR_T1]) GR_TUPLE1

SequenceParTuple1 converts a [T.Tuple1] of readers into a reader of a [T.Tuple1].

func SequenceParTuple10 added in v1.0.4

func SequenceParTuple10[
	GR_TUPLE10 ~func(context.Context) GIO_TUPLE10,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GR_T8 ~func(context.Context) GIO_T8,
	GR_T9 ~func(context.Context) GIO_T9,
	GR_T10 ~func(context.Context) GIO_T10,
	GIO_TUPLE10 ~func() E.Either[error, T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	GIO_T8 ~func() E.Either[error, T8],
	GIO_T9 ~func() E.Either[error, T9],
	GIO_T10 ~func() E.Either[error, T10],
	T1,
	T2,
	T3,
	T4,
	T5,
	T6,
	T7,
	T8,
	T9,
	T10 any](t T.Tuple10[GR_T1, GR_T2, GR_T3, GR_T4, GR_T5, GR_T6, GR_T7, GR_T8, GR_T9, GR_T10]) GR_TUPLE10

SequenceParTuple10 converts a [T.Tuple10] of readers into a reader of a [T.Tuple10].

func SequenceParTuple2 added in v1.0.4

func SequenceParTuple2[
	GR_TUPLE2 ~func(context.Context) GIO_TUPLE2,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GIO_TUPLE2 ~func() E.Either[error, T.Tuple2[T1, T2]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	T1,
	T2 any](t T.Tuple2[GR_T1, GR_T2]) GR_TUPLE2

SequenceParTuple2 converts a [T.Tuple2] of readers into a reader of a [T.Tuple2].

func SequenceParTuple3 added in v1.0.4

func SequenceParTuple3[
	GR_TUPLE3 ~func(context.Context) GIO_TUPLE3,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GIO_TUPLE3 ~func() E.Either[error, T.Tuple3[T1, T2, T3]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	T1,
	T2,
	T3 any](t T.Tuple3[GR_T1, GR_T2, GR_T3]) GR_TUPLE3

SequenceParTuple3 converts a [T.Tuple3] of readers into a reader of a [T.Tuple3].

func SequenceParTuple4 added in v1.0.4

func SequenceParTuple4[
	GR_TUPLE4 ~func(context.Context) GIO_TUPLE4,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GIO_TUPLE4 ~func() E.Either[error, T.Tuple4[T1, T2, T3, T4]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	T1,
	T2,
	T3,
	T4 any](t T.Tuple4[GR_T1, GR_T2, GR_T3, GR_T4]) GR_TUPLE4

SequenceParTuple4 converts a [T.Tuple4] of readers into a reader of a [T.Tuple4].

func SequenceParTuple5 added in v1.0.4

func SequenceParTuple5[
	GR_TUPLE5 ~func(context.Context) GIO_TUPLE5,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GIO_TUPLE5 ~func() E.Either[error, T.Tuple5[T1, T2, T3, T4, T5]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	T1,
	T2,
	T3,
	T4,
	T5 any](t T.Tuple5[GR_T1, GR_T2, GR_T3, GR_T4, GR_T5]) GR_TUPLE5

SequenceParTuple5 converts a [T.Tuple5] of readers into a reader of a [T.Tuple5].

func SequenceParTuple6 added in v1.0.4

func SequenceParTuple6[
	GR_TUPLE6 ~func(context.Context) GIO_TUPLE6,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GIO_TUPLE6 ~func() E.Either[error, T.Tuple6[T1, T2, T3, T4, T5, T6]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	T1,
	T2,
	T3,
	T4,
	T5,
	T6 any](t T.Tuple6[GR_T1, GR_T2, GR_T3, GR_T4, GR_T5, GR_T6]) GR_TUPLE6

SequenceParTuple6 converts a [T.Tuple6] of readers into a reader of a [T.Tuple6].

func SequenceParTuple7 added in v1.0.4

func SequenceParTuple7[
	GR_TUPLE7 ~func(context.Context) GIO_TUPLE7,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GIO_TUPLE7 ~func() E.Either[error, T.Tuple7[T1, T2, T3, T4, T5, T6, T7]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	T1,
	T2,
	T3,
	T4,
	T5,
	T6,
	T7 any](t T.Tuple7[GR_T1, GR_T2, GR_T3, GR_T4, GR_T5, GR_T6, GR_T7]) GR_TUPLE7

SequenceParTuple7 converts a [T.Tuple7] of readers into a reader of a [T.Tuple7].

func SequenceParTuple8 added in v1.0.4

func SequenceParTuple8[
	GR_TUPLE8 ~func(context.Context) GIO_TUPLE8,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GR_T8 ~func(context.Context) GIO_T8,
	GIO_TUPLE8 ~func() E.Either[error, T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	GIO_T8 ~func() E.Either[error, T8],
	T1,
	T2,
	T3,
	T4,
	T5,
	T6,
	T7,
	T8 any](t T.Tuple8[GR_T1, GR_T2, GR_T3, GR_T4, GR_T5, GR_T6, GR_T7, GR_T8]) GR_TUPLE8

SequenceParTuple8 converts a [T.Tuple8] of readers into a reader of a [T.Tuple8].

func SequenceParTuple9 added in v1.0.4

func SequenceParTuple9[
	GR_TUPLE9 ~func(context.Context) GIO_TUPLE9,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GR_T8 ~func(context.Context) GIO_T8,
	GR_T9 ~func(context.Context) GIO_T9,
	GIO_TUPLE9 ~func() E.Either[error, T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	GIO_T8 ~func() E.Either[error, T8],
	GIO_T9 ~func() E.Either[error, T9],
	T1,
	T2,
	T3,
	T4,
	T5,
	T6,
	T7,
	T8,
	T9 any](t T.Tuple9[GR_T1, GR_T2, GR_T3, GR_T4, GR_T5, GR_T6, GR_T7, GR_T8, GR_T9]) GR_TUPLE9

SequenceParTuple9 converts a [T.Tuple9] of readers into a reader of a [T.Tuple9].

func SequenceRecord

func SequenceRecord[K comparable,
	AS ~map[K]A,
	GAS ~map[K]GRA,
	GRAS ~func(context.Context) GIOAS,
	GRA ~func(context.Context) GIOA,
	GIOAS ~func() E.Either[error, AS],
	GIOA ~func() E.Either[error, A],
	A any](ma GAS) GRAS

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

func SequenceRecordPar added in v1.0.61

func SequenceRecordPar[K comparable,
	AS ~map[K]A,
	GAS ~map[K]GRA,
	GRAS ~func(context.Context) GIOAS,
	GRA ~func(context.Context) GIOA,
	GIOAS ~func() E.Either[error, AS],
	GIOA ~func() E.Either[error, A],
	A any](ma GAS) GRAS

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

func SequenceRecordSeq added in v1.0.61

func SequenceRecordSeq[K comparable,
	AS ~map[K]A,
	GAS ~map[K]GRA,
	GRAS ~func(context.Context) GIOAS,
	GRA ~func(context.Context) GIOA,
	GIOAS ~func() E.Either[error, AS],
	GIOA ~func() E.Either[error, A],
	A any](ma GAS) GRAS

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

func SequenceSeqT1 added in v1.0.4

func SequenceSeqT1[
	GR_TUPLE1 ~func(context.Context) GIO_TUPLE1,
	GR_T1 ~func(context.Context) GIO_T1,
	GIO_TUPLE1 ~func() E.Either[error, T.Tuple1[T1]],
	GIO_T1 ~func() E.Either[error, T1],
	T1 any](
	t1 GR_T1,
) GR_TUPLE1

SequenceSeqT1 converts 1 readers into a reader of a [T.Tuple1].

func SequenceSeqT10 added in v1.0.4

func SequenceSeqT10[
	GR_TUPLE10 ~func(context.Context) GIO_TUPLE10,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GR_T8 ~func(context.Context) GIO_T8,
	GR_T9 ~func(context.Context) GIO_T9,
	GR_T10 ~func(context.Context) GIO_T10,
	GIO_TUPLE10 ~func() E.Either[error, T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	GIO_T8 ~func() E.Either[error, T8],
	GIO_T9 ~func() E.Either[error, T9],
	GIO_T10 ~func() E.Either[error, T10],
	T1,
	T2,
	T3,
	T4,
	T5,
	T6,
	T7,
	T8,
	T9,
	T10 any](
	t1 GR_T1,
	t2 GR_T2,
	t3 GR_T3,
	t4 GR_T4,
	t5 GR_T5,
	t6 GR_T6,
	t7 GR_T7,
	t8 GR_T8,
	t9 GR_T9,
	t10 GR_T10,
) GR_TUPLE10

SequenceSeqT10 converts 10 readers into a reader of a [T.Tuple10].

func SequenceSeqT2 added in v1.0.4

func SequenceSeqT2[
	GR_TUPLE2 ~func(context.Context) GIO_TUPLE2,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GIO_TUPLE2 ~func() E.Either[error, T.Tuple2[T1, T2]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	T1,
	T2 any](
	t1 GR_T1,
	t2 GR_T2,
) GR_TUPLE2

SequenceSeqT2 converts 2 readers into a reader of a [T.Tuple2].

func SequenceSeqT3 added in v1.0.4

func SequenceSeqT3[
	GR_TUPLE3 ~func(context.Context) GIO_TUPLE3,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GIO_TUPLE3 ~func() E.Either[error, T.Tuple3[T1, T2, T3]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	T1,
	T2,
	T3 any](
	t1 GR_T1,
	t2 GR_T2,
	t3 GR_T3,
) GR_TUPLE3

SequenceSeqT3 converts 3 readers into a reader of a [T.Tuple3].

func SequenceSeqT4 added in v1.0.4

func SequenceSeqT4[
	GR_TUPLE4 ~func(context.Context) GIO_TUPLE4,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GIO_TUPLE4 ~func() E.Either[error, T.Tuple4[T1, T2, T3, T4]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	T1,
	T2,
	T3,
	T4 any](
	t1 GR_T1,
	t2 GR_T2,
	t3 GR_T3,
	t4 GR_T4,
) GR_TUPLE4

SequenceSeqT4 converts 4 readers into a reader of a [T.Tuple4].

func SequenceSeqT5 added in v1.0.4

func SequenceSeqT5[
	GR_TUPLE5 ~func(context.Context) GIO_TUPLE5,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GIO_TUPLE5 ~func() E.Either[error, T.Tuple5[T1, T2, T3, T4, T5]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	T1,
	T2,
	T3,
	T4,
	T5 any](
	t1 GR_T1,
	t2 GR_T2,
	t3 GR_T3,
	t4 GR_T4,
	t5 GR_T5,
) GR_TUPLE5

SequenceSeqT5 converts 5 readers into a reader of a [T.Tuple5].

func SequenceSeqT6 added in v1.0.4

func SequenceSeqT6[
	GR_TUPLE6 ~func(context.Context) GIO_TUPLE6,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GIO_TUPLE6 ~func() E.Either[error, T.Tuple6[T1, T2, T3, T4, T5, T6]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	T1,
	T2,
	T3,
	T4,
	T5,
	T6 any](
	t1 GR_T1,
	t2 GR_T2,
	t3 GR_T3,
	t4 GR_T4,
	t5 GR_T5,
	t6 GR_T6,
) GR_TUPLE6

SequenceSeqT6 converts 6 readers into a reader of a [T.Tuple6].

func SequenceSeqT7 added in v1.0.4

func SequenceSeqT7[
	GR_TUPLE7 ~func(context.Context) GIO_TUPLE7,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GIO_TUPLE7 ~func() E.Either[error, T.Tuple7[T1, T2, T3, T4, T5, T6, T7]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	T1,
	T2,
	T3,
	T4,
	T5,
	T6,
	T7 any](
	t1 GR_T1,
	t2 GR_T2,
	t3 GR_T3,
	t4 GR_T4,
	t5 GR_T5,
	t6 GR_T6,
	t7 GR_T7,
) GR_TUPLE7

SequenceSeqT7 converts 7 readers into a reader of a [T.Tuple7].

func SequenceSeqT8 added in v1.0.4

func SequenceSeqT8[
	GR_TUPLE8 ~func(context.Context) GIO_TUPLE8,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GR_T8 ~func(context.Context) GIO_T8,
	GIO_TUPLE8 ~func() E.Either[error, T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	GIO_T8 ~func() E.Either[error, T8],
	T1,
	T2,
	T3,
	T4,
	T5,
	T6,
	T7,
	T8 any](
	t1 GR_T1,
	t2 GR_T2,
	t3 GR_T3,
	t4 GR_T4,
	t5 GR_T5,
	t6 GR_T6,
	t7 GR_T7,
	t8 GR_T8,
) GR_TUPLE8

SequenceSeqT8 converts 8 readers into a reader of a [T.Tuple8].

func SequenceSeqT9 added in v1.0.4

func SequenceSeqT9[
	GR_TUPLE9 ~func(context.Context) GIO_TUPLE9,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GR_T8 ~func(context.Context) GIO_T8,
	GR_T9 ~func(context.Context) GIO_T9,
	GIO_TUPLE9 ~func() E.Either[error, T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	GIO_T8 ~func() E.Either[error, T8],
	GIO_T9 ~func() E.Either[error, T9],
	T1,
	T2,
	T3,
	T4,
	T5,
	T6,
	T7,
	T8,
	T9 any](
	t1 GR_T1,
	t2 GR_T2,
	t3 GR_T3,
	t4 GR_T4,
	t5 GR_T5,
	t6 GR_T6,
	t7 GR_T7,
	t8 GR_T8,
	t9 GR_T9,
) GR_TUPLE9

SequenceSeqT9 converts 9 readers into a reader of a [T.Tuple9].

func SequenceSeqTuple1 added in v1.0.4

func SequenceSeqTuple1[
	GR_TUPLE1 ~func(context.Context) GIO_TUPLE1,
	GR_T1 ~func(context.Context) GIO_T1,
	GIO_TUPLE1 ~func() E.Either[error, T.Tuple1[T1]],
	GIO_T1 ~func() E.Either[error, T1],
	T1 any](t T.Tuple1[GR_T1]) GR_TUPLE1

SequenceSeqTuple1 converts a [T.Tuple1] of readers into a reader of a [T.Tuple1].

func SequenceSeqTuple10 added in v1.0.4

func SequenceSeqTuple10[
	GR_TUPLE10 ~func(context.Context) GIO_TUPLE10,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GR_T8 ~func(context.Context) GIO_T8,
	GR_T9 ~func(context.Context) GIO_T9,
	GR_T10 ~func(context.Context) GIO_T10,
	GIO_TUPLE10 ~func() E.Either[error, T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	GIO_T8 ~func() E.Either[error, T8],
	GIO_T9 ~func() E.Either[error, T9],
	GIO_T10 ~func() E.Either[error, T10],
	T1,
	T2,
	T3,
	T4,
	T5,
	T6,
	T7,
	T8,
	T9,
	T10 any](t T.Tuple10[GR_T1, GR_T2, GR_T3, GR_T4, GR_T5, GR_T6, GR_T7, GR_T8, GR_T9, GR_T10]) GR_TUPLE10

SequenceSeqTuple10 converts a [T.Tuple10] of readers into a reader of a [T.Tuple10].

func SequenceSeqTuple2 added in v1.0.4

func SequenceSeqTuple2[
	GR_TUPLE2 ~func(context.Context) GIO_TUPLE2,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GIO_TUPLE2 ~func() E.Either[error, T.Tuple2[T1, T2]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	T1,
	T2 any](t T.Tuple2[GR_T1, GR_T2]) GR_TUPLE2

SequenceSeqTuple2 converts a [T.Tuple2] of readers into a reader of a [T.Tuple2].

func SequenceSeqTuple3 added in v1.0.4

func SequenceSeqTuple3[
	GR_TUPLE3 ~func(context.Context) GIO_TUPLE3,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GIO_TUPLE3 ~func() E.Either[error, T.Tuple3[T1, T2, T3]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	T1,
	T2,
	T3 any](t T.Tuple3[GR_T1, GR_T2, GR_T3]) GR_TUPLE3

SequenceSeqTuple3 converts a [T.Tuple3] of readers into a reader of a [T.Tuple3].

func SequenceSeqTuple4 added in v1.0.4

func SequenceSeqTuple4[
	GR_TUPLE4 ~func(context.Context) GIO_TUPLE4,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GIO_TUPLE4 ~func() E.Either[error, T.Tuple4[T1, T2, T3, T4]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	T1,
	T2,
	T3,
	T4 any](t T.Tuple4[GR_T1, GR_T2, GR_T3, GR_T4]) GR_TUPLE4

SequenceSeqTuple4 converts a [T.Tuple4] of readers into a reader of a [T.Tuple4].

func SequenceSeqTuple5 added in v1.0.4

func SequenceSeqTuple5[
	GR_TUPLE5 ~func(context.Context) GIO_TUPLE5,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GIO_TUPLE5 ~func() E.Either[error, T.Tuple5[T1, T2, T3, T4, T5]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	T1,
	T2,
	T3,
	T4,
	T5 any](t T.Tuple5[GR_T1, GR_T2, GR_T3, GR_T4, GR_T5]) GR_TUPLE5

SequenceSeqTuple5 converts a [T.Tuple5] of readers into a reader of a [T.Tuple5].

func SequenceSeqTuple6 added in v1.0.4

func SequenceSeqTuple6[
	GR_TUPLE6 ~func(context.Context) GIO_TUPLE6,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GIO_TUPLE6 ~func() E.Either[error, T.Tuple6[T1, T2, T3, T4, T5, T6]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	T1,
	T2,
	T3,
	T4,
	T5,
	T6 any](t T.Tuple6[GR_T1, GR_T2, GR_T3, GR_T4, GR_T5, GR_T6]) GR_TUPLE6

SequenceSeqTuple6 converts a [T.Tuple6] of readers into a reader of a [T.Tuple6].

func SequenceSeqTuple7 added in v1.0.4

func SequenceSeqTuple7[
	GR_TUPLE7 ~func(context.Context) GIO_TUPLE7,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GIO_TUPLE7 ~func() E.Either[error, T.Tuple7[T1, T2, T3, T4, T5, T6, T7]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	T1,
	T2,
	T3,
	T4,
	T5,
	T6,
	T7 any](t T.Tuple7[GR_T1, GR_T2, GR_T3, GR_T4, GR_T5, GR_T6, GR_T7]) GR_TUPLE7

SequenceSeqTuple7 converts a [T.Tuple7] of readers into a reader of a [T.Tuple7].

func SequenceSeqTuple8 added in v1.0.4

func SequenceSeqTuple8[
	GR_TUPLE8 ~func(context.Context) GIO_TUPLE8,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GR_T8 ~func(context.Context) GIO_T8,
	GIO_TUPLE8 ~func() E.Either[error, T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	GIO_T8 ~func() E.Either[error, T8],
	T1,
	T2,
	T3,
	T4,
	T5,
	T6,
	T7,
	T8 any](t T.Tuple8[GR_T1, GR_T2, GR_T3, GR_T4, GR_T5, GR_T6, GR_T7, GR_T8]) GR_TUPLE8

SequenceSeqTuple8 converts a [T.Tuple8] of readers into a reader of a [T.Tuple8].

func SequenceSeqTuple9 added in v1.0.4

func SequenceSeqTuple9[
	GR_TUPLE9 ~func(context.Context) GIO_TUPLE9,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GR_T8 ~func(context.Context) GIO_T8,
	GR_T9 ~func(context.Context) GIO_T9,
	GIO_TUPLE9 ~func() E.Either[error, T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	GIO_T8 ~func() E.Either[error, T8],
	GIO_T9 ~func() E.Either[error, T9],
	T1,
	T2,
	T3,
	T4,
	T5,
	T6,
	T7,
	T8,
	T9 any](t T.Tuple9[GR_T1, GR_T2, GR_T3, GR_T4, GR_T5, GR_T6, GR_T7, GR_T8, GR_T9]) GR_TUPLE9

SequenceSeqTuple9 converts a [T.Tuple9] of readers into a reader of a [T.Tuple9].

func SequenceT1

func SequenceT1[
	GR_TUPLE1 ~func(context.Context) GIO_TUPLE1,
	GR_T1 ~func(context.Context) GIO_T1,
	GIO_TUPLE1 ~func() E.Either[error, T.Tuple1[T1]],
	GIO_T1 ~func() E.Either[error, T1],
	T1 any](
	t1 GR_T1,
) GR_TUPLE1

SequenceT1 converts 1 readers into a reader of a [T.Tuple1].

func SequenceT10 added in v1.0.4

func SequenceT10[
	GR_TUPLE10 ~func(context.Context) GIO_TUPLE10,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GR_T8 ~func(context.Context) GIO_T8,
	GR_T9 ~func(context.Context) GIO_T9,
	GR_T10 ~func(context.Context) GIO_T10,
	GIO_TUPLE10 ~func() E.Either[error, T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	GIO_T8 ~func() E.Either[error, T8],
	GIO_T9 ~func() E.Either[error, T9],
	GIO_T10 ~func() E.Either[error, T10],
	T1,
	T2,
	T3,
	T4,
	T5,
	T6,
	T7,
	T8,
	T9,
	T10 any](
	t1 GR_T1,
	t2 GR_T2,
	t3 GR_T3,
	t4 GR_T4,
	t5 GR_T5,
	t6 GR_T6,
	t7 GR_T7,
	t8 GR_T8,
	t9 GR_T9,
	t10 GR_T10,
) GR_TUPLE10

SequenceT10 converts 10 readers into a reader of a [T.Tuple10].

func SequenceT2

func SequenceT2[
	GR_TUPLE2 ~func(context.Context) GIO_TUPLE2,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GIO_TUPLE2 ~func() E.Either[error, T.Tuple2[T1, T2]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	T1,
	T2 any](
	t1 GR_T1,
	t2 GR_T2,
) GR_TUPLE2

SequenceT2 converts 2 readers into a reader of a [T.Tuple2].

func SequenceT3

func SequenceT3[
	GR_TUPLE3 ~func(context.Context) GIO_TUPLE3,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GIO_TUPLE3 ~func() E.Either[error, T.Tuple3[T1, T2, T3]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	T1,
	T2,
	T3 any](
	t1 GR_T1,
	t2 GR_T2,
	t3 GR_T3,
) GR_TUPLE3

SequenceT3 converts 3 readers into a reader of a [T.Tuple3].

func SequenceT4

func SequenceT4[
	GR_TUPLE4 ~func(context.Context) GIO_TUPLE4,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GIO_TUPLE4 ~func() E.Either[error, T.Tuple4[T1, T2, T3, T4]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	T1,
	T2,
	T3,
	T4 any](
	t1 GR_T1,
	t2 GR_T2,
	t3 GR_T3,
	t4 GR_T4,
) GR_TUPLE4

SequenceT4 converts 4 readers into a reader of a [T.Tuple4].

func SequenceT5 added in v1.0.4

func SequenceT5[
	GR_TUPLE5 ~func(context.Context) GIO_TUPLE5,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GIO_TUPLE5 ~func() E.Either[error, T.Tuple5[T1, T2, T3, T4, T5]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	T1,
	T2,
	T3,
	T4,
	T5 any](
	t1 GR_T1,
	t2 GR_T2,
	t3 GR_T3,
	t4 GR_T4,
	t5 GR_T5,
) GR_TUPLE5

SequenceT5 converts 5 readers into a reader of a [T.Tuple5].

func SequenceT6 added in v1.0.4

func SequenceT6[
	GR_TUPLE6 ~func(context.Context) GIO_TUPLE6,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GIO_TUPLE6 ~func() E.Either[error, T.Tuple6[T1, T2, T3, T4, T5, T6]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	T1,
	T2,
	T3,
	T4,
	T5,
	T6 any](
	t1 GR_T1,
	t2 GR_T2,
	t3 GR_T3,
	t4 GR_T4,
	t5 GR_T5,
	t6 GR_T6,
) GR_TUPLE6

SequenceT6 converts 6 readers into a reader of a [T.Tuple6].

func SequenceT7 added in v1.0.4

func SequenceT7[
	GR_TUPLE7 ~func(context.Context) GIO_TUPLE7,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GIO_TUPLE7 ~func() E.Either[error, T.Tuple7[T1, T2, T3, T4, T5, T6, T7]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	T1,
	T2,
	T3,
	T4,
	T5,
	T6,
	T7 any](
	t1 GR_T1,
	t2 GR_T2,
	t3 GR_T3,
	t4 GR_T4,
	t5 GR_T5,
	t6 GR_T6,
	t7 GR_T7,
) GR_TUPLE7

SequenceT7 converts 7 readers into a reader of a [T.Tuple7].

func SequenceT8 added in v1.0.4

func SequenceT8[
	GR_TUPLE8 ~func(context.Context) GIO_TUPLE8,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GR_T8 ~func(context.Context) GIO_T8,
	GIO_TUPLE8 ~func() E.Either[error, T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	GIO_T8 ~func() E.Either[error, T8],
	T1,
	T2,
	T3,
	T4,
	T5,
	T6,
	T7,
	T8 any](
	t1 GR_T1,
	t2 GR_T2,
	t3 GR_T3,
	t4 GR_T4,
	t5 GR_T5,
	t6 GR_T6,
	t7 GR_T7,
	t8 GR_T8,
) GR_TUPLE8

SequenceT8 converts 8 readers into a reader of a [T.Tuple8].

func SequenceT9 added in v1.0.4

func SequenceT9[
	GR_TUPLE9 ~func(context.Context) GIO_TUPLE9,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GR_T8 ~func(context.Context) GIO_T8,
	GR_T9 ~func(context.Context) GIO_T9,
	GIO_TUPLE9 ~func() E.Either[error, T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	GIO_T8 ~func() E.Either[error, T8],
	GIO_T9 ~func() E.Either[error, T9],
	T1,
	T2,
	T3,
	T4,
	T5,
	T6,
	T7,
	T8,
	T9 any](
	t1 GR_T1,
	t2 GR_T2,
	t3 GR_T3,
	t4 GR_T4,
	t5 GR_T5,
	t6 GR_T6,
	t7 GR_T7,
	t8 GR_T8,
	t9 GR_T9,
) GR_TUPLE9

SequenceT9 converts 9 readers into a reader of a [T.Tuple9].

func SequenceTuple1 added in v1.0.4

func SequenceTuple1[
	GR_TUPLE1 ~func(context.Context) GIO_TUPLE1,
	GR_T1 ~func(context.Context) GIO_T1,
	GIO_TUPLE1 ~func() E.Either[error, T.Tuple1[T1]],
	GIO_T1 ~func() E.Either[error, T1],
	T1 any](t T.Tuple1[GR_T1]) GR_TUPLE1

SequenceTuple1 converts a [T.Tuple1] of readers into a reader of a [T.Tuple1].

func SequenceTuple10 added in v1.0.4

func SequenceTuple10[
	GR_TUPLE10 ~func(context.Context) GIO_TUPLE10,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GR_T8 ~func(context.Context) GIO_T8,
	GR_T9 ~func(context.Context) GIO_T9,
	GR_T10 ~func(context.Context) GIO_T10,
	GIO_TUPLE10 ~func() E.Either[error, T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	GIO_T8 ~func() E.Either[error, T8],
	GIO_T9 ~func() E.Either[error, T9],
	GIO_T10 ~func() E.Either[error, T10],
	T1,
	T2,
	T3,
	T4,
	T5,
	T6,
	T7,
	T8,
	T9,
	T10 any](t T.Tuple10[GR_T1, GR_T2, GR_T3, GR_T4, GR_T5, GR_T6, GR_T7, GR_T8, GR_T9, GR_T10]) GR_TUPLE10

SequenceTuple10 converts a [T.Tuple10] of readers into a reader of a [T.Tuple10].

func SequenceTuple2 added in v1.0.4

func SequenceTuple2[
	GR_TUPLE2 ~func(context.Context) GIO_TUPLE2,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GIO_TUPLE2 ~func() E.Either[error, T.Tuple2[T1, T2]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	T1,
	T2 any](t T.Tuple2[GR_T1, GR_T2]) GR_TUPLE2

SequenceTuple2 converts a [T.Tuple2] of readers into a reader of a [T.Tuple2].

func SequenceTuple3 added in v1.0.4

func SequenceTuple3[
	GR_TUPLE3 ~func(context.Context) GIO_TUPLE3,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GIO_TUPLE3 ~func() E.Either[error, T.Tuple3[T1, T2, T3]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	T1,
	T2,
	T3 any](t T.Tuple3[GR_T1, GR_T2, GR_T3]) GR_TUPLE3

SequenceTuple3 converts a [T.Tuple3] of readers into a reader of a [T.Tuple3].

func SequenceTuple4 added in v1.0.4

func SequenceTuple4[
	GR_TUPLE4 ~func(context.Context) GIO_TUPLE4,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GIO_TUPLE4 ~func() E.Either[error, T.Tuple4[T1, T2, T3, T4]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	T1,
	T2,
	T3,
	T4 any](t T.Tuple4[GR_T1, GR_T2, GR_T3, GR_T4]) GR_TUPLE4

SequenceTuple4 converts a [T.Tuple4] of readers into a reader of a [T.Tuple4].

func SequenceTuple5 added in v1.0.4

func SequenceTuple5[
	GR_TUPLE5 ~func(context.Context) GIO_TUPLE5,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GIO_TUPLE5 ~func() E.Either[error, T.Tuple5[T1, T2, T3, T4, T5]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	T1,
	T2,
	T3,
	T4,
	T5 any](t T.Tuple5[GR_T1, GR_T2, GR_T3, GR_T4, GR_T5]) GR_TUPLE5

SequenceTuple5 converts a [T.Tuple5] of readers into a reader of a [T.Tuple5].

func SequenceTuple6 added in v1.0.4

func SequenceTuple6[
	GR_TUPLE6 ~func(context.Context) GIO_TUPLE6,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GIO_TUPLE6 ~func() E.Either[error, T.Tuple6[T1, T2, T3, T4, T5, T6]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	T1,
	T2,
	T3,
	T4,
	T5,
	T6 any](t T.Tuple6[GR_T1, GR_T2, GR_T3, GR_T4, GR_T5, GR_T6]) GR_TUPLE6

SequenceTuple6 converts a [T.Tuple6] of readers into a reader of a [T.Tuple6].

func SequenceTuple7 added in v1.0.4

func SequenceTuple7[
	GR_TUPLE7 ~func(context.Context) GIO_TUPLE7,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GIO_TUPLE7 ~func() E.Either[error, T.Tuple7[T1, T2, T3, T4, T5, T6, T7]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	T1,
	T2,
	T3,
	T4,
	T5,
	T6,
	T7 any](t T.Tuple7[GR_T1, GR_T2, GR_T3, GR_T4, GR_T5, GR_T6, GR_T7]) GR_TUPLE7

SequenceTuple7 converts a [T.Tuple7] of readers into a reader of a [T.Tuple7].

func SequenceTuple8 added in v1.0.4

func SequenceTuple8[
	GR_TUPLE8 ~func(context.Context) GIO_TUPLE8,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GR_T8 ~func(context.Context) GIO_T8,
	GIO_TUPLE8 ~func() E.Either[error, T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	GIO_T8 ~func() E.Either[error, T8],
	T1,
	T2,
	T3,
	T4,
	T5,
	T6,
	T7,
	T8 any](t T.Tuple8[GR_T1, GR_T2, GR_T3, GR_T4, GR_T5, GR_T6, GR_T7, GR_T8]) GR_TUPLE8

SequenceTuple8 converts a [T.Tuple8] of readers into a reader of a [T.Tuple8].

func SequenceTuple9 added in v1.0.4

func SequenceTuple9[
	GR_TUPLE9 ~func(context.Context) GIO_TUPLE9,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GR_T8 ~func(context.Context) GIO_T8,
	GR_T9 ~func(context.Context) GIO_T9,
	GIO_TUPLE9 ~func() E.Either[error, T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	GIO_T8 ~func() E.Either[error, T8],
	GIO_T9 ~func() E.Either[error, T9],
	T1,
	T2,
	T3,
	T4,
	T5,
	T6,
	T7,
	T8,
	T9 any](t T.Tuple9[GR_T1, GR_T2, GR_T3, GR_T4, GR_T5, GR_T6, GR_T7, GR_T8, GR_T9]) GR_TUPLE9

SequenceTuple9 converts a [T.Tuple9] of readers into a reader of a [T.Tuple9].

func Timer

func Timer[
	GRA ~func(context.Context) GIOA,
	GIOA ~func() E.Either[error, time.Time],

](delay time.Duration) GRA

Timer will return the current time after an initial delay

func TraverseArray

func TraverseArray[
	AS ~[]A,
	GRBS ~func(context.Context) GIOBS,
	GRB ~func(context.Context) GIOB,
	GIOBS ~func() E.Either[error, BS],
	GIOB ~func() E.Either[error, B],
	BS ~[]B,
	A, B any](f func(A) GRB) func(AS) GRBS

TraverseArray transforms an array

func TraverseArrayPar added in v1.0.61

func TraverseArrayPar[
	AS ~[]A,
	GRBS ~func(context.Context) GIOBS,
	GRB ~func(context.Context) GIOB,
	GIOBS ~func() E.Either[error, BS],
	GIOB ~func() E.Either[error, B],
	BS ~[]B,
	A, B any](f func(A) GRB) func(AS) GRBS

TraverseArrayPar transforms an array

func TraverseArraySeq added in v1.0.61

func TraverseArraySeq[
	AS ~[]A,
	GRBS ~func(context.Context) GIOBS,
	GRB ~func(context.Context) GIOB,
	GIOBS ~func() E.Either[error, BS],
	GIOB ~func() E.Either[error, B],
	BS ~[]B,
	A, B any](f func(A) GRB) func(AS) GRBS

TraverseArraySeq transforms an array

func TraverseArrayWithIndex added in v1.0.29

func TraverseArrayWithIndex[
	AS ~[]A,
	GRBS ~func(context.Context) GIOBS,
	GRB ~func(context.Context) GIOB,
	GIOBS ~func() E.Either[error, BS],
	GIOB ~func() E.Either[error, B],
	BS ~[]B,
	A, B any](f func(int, A) GRB) func(AS) GRBS

TraverseArrayWithIndex transforms an array

func TraverseArrayWithIndexPar added in v1.0.61

func TraverseArrayWithIndexPar[
	AS ~[]A,
	GRBS ~func(context.Context) GIOBS,
	GRB ~func(context.Context) GIOB,
	GIOBS ~func() E.Either[error, BS],
	GIOB ~func() E.Either[error, B],
	BS ~[]B,
	A, B any](f func(int, A) GRB) func(AS) GRBS

TraverseArrayWithIndexPar transforms an array

func TraverseArrayWithIndexSeq added in v1.0.61

func TraverseArrayWithIndexSeq[
	AS ~[]A,
	GRBS ~func(context.Context) GIOBS,
	GRB ~func(context.Context) GIOB,
	GIOBS ~func() E.Either[error, BS],
	GIOB ~func() E.Either[error, B],
	BS ~[]B,
	A, B any](f func(int, A) GRB) func(AS) GRBS

TraverseArrayWithIndexSeq transforms an array

func TraverseParTuple1 added in v1.0.4

func TraverseParTuple1[
	GR_TUPLE1 ~func(context.Context) GIO_TUPLE1,
	F1 ~func(A1) GR_T1,
	GR_T1 ~func(context.Context) GIO_T1,
	GIO_TUPLE1 ~func() E.Either[error, T.Tuple1[T1]],
	GIO_T1 ~func() E.Either[error, T1],
	A1,
	T1 any](f1 F1) func(T.Tuple1[A1]) GR_TUPLE1

TraverseParTuple1 converts a [T.Tuple1] of readers into a reader of a [T.Tuple1].

func TraverseParTuple10 added in v1.0.4

func TraverseParTuple10[
	GR_TUPLE10 ~func(context.Context) GIO_TUPLE10,
	F1 ~func(A1) GR_T1,
	F2 ~func(A2) GR_T2,
	F3 ~func(A3) GR_T3,
	F4 ~func(A4) GR_T4,
	F5 ~func(A5) GR_T5,
	F6 ~func(A6) GR_T6,
	F7 ~func(A7) GR_T7,
	F8 ~func(A8) GR_T8,
	F9 ~func(A9) GR_T9,
	F10 ~func(A10) GR_T10,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GR_T8 ~func(context.Context) GIO_T8,
	GR_T9 ~func(context.Context) GIO_T9,
	GR_T10 ~func(context.Context) GIO_T10,
	GIO_TUPLE10 ~func() E.Either[error, T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	GIO_T8 ~func() E.Either[error, T8],
	GIO_T9 ~func() E.Either[error, T9],
	GIO_T10 ~func() E.Either[error, T10],
	A1,
	T1,
	A2,
	T2,
	A3,
	T3,
	A4,
	T4,
	A5,
	T5,
	A6,
	T6,
	A7,
	T7,
	A8,
	T8,
	A9,
	T9,
	A10,
	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]) GR_TUPLE10

TraverseParTuple10 converts a [T.Tuple10] of readers into a reader of a [T.Tuple10].

func TraverseParTuple2 added in v1.0.4

func TraverseParTuple2[
	GR_TUPLE2 ~func(context.Context) GIO_TUPLE2,
	F1 ~func(A1) GR_T1,
	F2 ~func(A2) GR_T2,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GIO_TUPLE2 ~func() E.Either[error, T.Tuple2[T1, T2]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	A1,
	T1,
	A2,
	T2 any](f1 F1, f2 F2) func(T.Tuple2[A1, A2]) GR_TUPLE2

TraverseParTuple2 converts a [T.Tuple2] of readers into a reader of a [T.Tuple2].

func TraverseParTuple3 added in v1.0.4

func TraverseParTuple3[
	GR_TUPLE3 ~func(context.Context) GIO_TUPLE3,
	F1 ~func(A1) GR_T1,
	F2 ~func(A2) GR_T2,
	F3 ~func(A3) GR_T3,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GIO_TUPLE3 ~func() E.Either[error, T.Tuple3[T1, T2, T3]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	A1,
	T1,
	A2,
	T2,
	A3,
	T3 any](f1 F1, f2 F2, f3 F3) func(T.Tuple3[A1, A2, A3]) GR_TUPLE3

TraverseParTuple3 converts a [T.Tuple3] of readers into a reader of a [T.Tuple3].

func TraverseParTuple4 added in v1.0.4

func TraverseParTuple4[
	GR_TUPLE4 ~func(context.Context) GIO_TUPLE4,
	F1 ~func(A1) GR_T1,
	F2 ~func(A2) GR_T2,
	F3 ~func(A3) GR_T3,
	F4 ~func(A4) GR_T4,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GIO_TUPLE4 ~func() E.Either[error, T.Tuple4[T1, T2, T3, T4]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	A1,
	T1,
	A2,
	T2,
	A3,
	T3,
	A4,
	T4 any](f1 F1, f2 F2, f3 F3, f4 F4) func(T.Tuple4[A1, A2, A3, A4]) GR_TUPLE4

TraverseParTuple4 converts a [T.Tuple4] of readers into a reader of a [T.Tuple4].

func TraverseParTuple5 added in v1.0.4

func TraverseParTuple5[
	GR_TUPLE5 ~func(context.Context) GIO_TUPLE5,
	F1 ~func(A1) GR_T1,
	F2 ~func(A2) GR_T2,
	F3 ~func(A3) GR_T3,
	F4 ~func(A4) GR_T4,
	F5 ~func(A5) GR_T5,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GIO_TUPLE5 ~func() E.Either[error, T.Tuple5[T1, T2, T3, T4, T5]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	A1,
	T1,
	A2,
	T2,
	A3,
	T3,
	A4,
	T4,
	A5,
	T5 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5) func(T.Tuple5[A1, A2, A3, A4, A5]) GR_TUPLE5

TraverseParTuple5 converts a [T.Tuple5] of readers into a reader of a [T.Tuple5].

func TraverseParTuple6 added in v1.0.4

func TraverseParTuple6[
	GR_TUPLE6 ~func(context.Context) GIO_TUPLE6,
	F1 ~func(A1) GR_T1,
	F2 ~func(A2) GR_T2,
	F3 ~func(A3) GR_T3,
	F4 ~func(A4) GR_T4,
	F5 ~func(A5) GR_T5,
	F6 ~func(A6) GR_T6,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GIO_TUPLE6 ~func() E.Either[error, T.Tuple6[T1, T2, T3, T4, T5, T6]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	A1,
	T1,
	A2,
	T2,
	A3,
	T3,
	A4,
	T4,
	A5,
	T5,
	A6,
	T6 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6) func(T.Tuple6[A1, A2, A3, A4, A5, A6]) GR_TUPLE6

TraverseParTuple6 converts a [T.Tuple6] of readers into a reader of a [T.Tuple6].

func TraverseParTuple7 added in v1.0.4

func TraverseParTuple7[
	GR_TUPLE7 ~func(context.Context) GIO_TUPLE7,
	F1 ~func(A1) GR_T1,
	F2 ~func(A2) GR_T2,
	F3 ~func(A3) GR_T3,
	F4 ~func(A4) GR_T4,
	F5 ~func(A5) GR_T5,
	F6 ~func(A6) GR_T6,
	F7 ~func(A7) GR_T7,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GIO_TUPLE7 ~func() E.Either[error, T.Tuple7[T1, T2, T3, T4, T5, T6, T7]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	A1,
	T1,
	A2,
	T2,
	A3,
	T3,
	A4,
	T4,
	A5,
	T5,
	A6,
	T6,
	A7,
	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]) GR_TUPLE7

TraverseParTuple7 converts a [T.Tuple7] of readers into a reader of a [T.Tuple7].

func TraverseParTuple8 added in v1.0.4

func TraverseParTuple8[
	GR_TUPLE8 ~func(context.Context) GIO_TUPLE8,
	F1 ~func(A1) GR_T1,
	F2 ~func(A2) GR_T2,
	F3 ~func(A3) GR_T3,
	F4 ~func(A4) GR_T4,
	F5 ~func(A5) GR_T5,
	F6 ~func(A6) GR_T6,
	F7 ~func(A7) GR_T7,
	F8 ~func(A8) GR_T8,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GR_T8 ~func(context.Context) GIO_T8,
	GIO_TUPLE8 ~func() E.Either[error, T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	GIO_T8 ~func() E.Either[error, T8],
	A1,
	T1,
	A2,
	T2,
	A3,
	T3,
	A4,
	T4,
	A5,
	T5,
	A6,
	T6,
	A7,
	T7,
	A8,
	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]) GR_TUPLE8

TraverseParTuple8 converts a [T.Tuple8] of readers into a reader of a [T.Tuple8].

func TraverseParTuple9 added in v1.0.4

func TraverseParTuple9[
	GR_TUPLE9 ~func(context.Context) GIO_TUPLE9,
	F1 ~func(A1) GR_T1,
	F2 ~func(A2) GR_T2,
	F3 ~func(A3) GR_T3,
	F4 ~func(A4) GR_T4,
	F5 ~func(A5) GR_T5,
	F6 ~func(A6) GR_T6,
	F7 ~func(A7) GR_T7,
	F8 ~func(A8) GR_T8,
	F9 ~func(A9) GR_T9,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GR_T8 ~func(context.Context) GIO_T8,
	GR_T9 ~func(context.Context) GIO_T9,
	GIO_TUPLE9 ~func() E.Either[error, T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	GIO_T8 ~func() E.Either[error, T8],
	GIO_T9 ~func() E.Either[error, T9],
	A1,
	T1,
	A2,
	T2,
	A3,
	T3,
	A4,
	T4,
	A5,
	T5,
	A6,
	T6,
	A7,
	T7,
	A8,
	T8,
	A9,
	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]) GR_TUPLE9

TraverseParTuple9 converts a [T.Tuple9] of readers into a reader of a [T.Tuple9].

func TraverseRecord

func TraverseRecord[K comparable,
	AS ~map[K]A,
	GRBS ~func(context.Context) GIOBS,
	GRB ~func(context.Context) GIOB,
	GIOBS ~func() E.Either[error, BS],
	GIOB ~func() E.Either[error, B],
	BS ~map[K]B,

	A, B any](f func(A) GRB) func(AS) GRBS

TraverseRecord transforms a record

func TraverseRecordPar added in v1.0.61

func TraverseRecordPar[K comparable,
	AS ~map[K]A,
	GRBS ~func(context.Context) GIOBS,
	GRB ~func(context.Context) GIOB,
	GIOBS ~func() E.Either[error, BS],
	GIOB ~func() E.Either[error, B],
	BS ~map[K]B,

	A, B any](f func(A) GRB) func(AS) GRBS

TraverseRecordPar transforms a record

func TraverseRecordSeq added in v1.0.61

func TraverseRecordSeq[K comparable,
	AS ~map[K]A,
	GRBS ~func(context.Context) GIOBS,
	GRB ~func(context.Context) GIOB,
	GIOBS ~func() E.Either[error, BS],
	GIOB ~func() E.Either[error, B],
	BS ~map[K]B,

	A, B any](f func(A) GRB) func(AS) GRBS

TraverseRecordSeq transforms a record

func TraverseRecordWithIndex added in v1.0.29

func TraverseRecordWithIndex[K comparable,
	AS ~map[K]A,
	GRBS ~func(context.Context) GIOBS,
	GRB ~func(context.Context) GIOB,
	GIOBS ~func() E.Either[error, BS],
	GIOB ~func() E.Either[error, B],
	BS ~map[K]B,

	A, B any](f func(K, A) GRB) func(AS) GRBS

TraverseRecordWithIndex transforms a record

func TraverseRecordWithIndexPar added in v1.0.61

func TraverseRecordWithIndexPar[K comparable,
	AS ~map[K]A,
	GRBS ~func(context.Context) GIOBS,
	GRB ~func(context.Context) GIOB,
	GIOBS ~func() E.Either[error, BS],
	GIOB ~func() E.Either[error, B],
	BS ~map[K]B,

	A, B any](f func(K, A) GRB) func(AS) GRBS

TraverseRecordWithIndexPar transforms a record

func TraverseRecordWithIndexSeq added in v1.0.61

func TraverseRecordWithIndexSeq[K comparable,
	AS ~map[K]A,
	GRBS ~func(context.Context) GIOBS,
	GRB ~func(context.Context) GIOB,
	GIOBS ~func() E.Either[error, BS],
	GIOB ~func() E.Either[error, B],
	BS ~map[K]B,

	A, B any](f func(K, A) GRB) func(AS) GRBS

TraverseRecordWithIndexSeq transforms a record

func TraverseSeqTuple1 added in v1.0.4

func TraverseSeqTuple1[
	GR_TUPLE1 ~func(context.Context) GIO_TUPLE1,
	F1 ~func(A1) GR_T1,
	GR_T1 ~func(context.Context) GIO_T1,
	GIO_TUPLE1 ~func() E.Either[error, T.Tuple1[T1]],
	GIO_T1 ~func() E.Either[error, T1],
	A1,
	T1 any](f1 F1) func(T.Tuple1[A1]) GR_TUPLE1

TraverseSeqTuple1 converts a [T.Tuple1] of readers into a reader of a [T.Tuple1].

func TraverseSeqTuple10 added in v1.0.4

func TraverseSeqTuple10[
	GR_TUPLE10 ~func(context.Context) GIO_TUPLE10,
	F1 ~func(A1) GR_T1,
	F2 ~func(A2) GR_T2,
	F3 ~func(A3) GR_T3,
	F4 ~func(A4) GR_T4,
	F5 ~func(A5) GR_T5,
	F6 ~func(A6) GR_T6,
	F7 ~func(A7) GR_T7,
	F8 ~func(A8) GR_T8,
	F9 ~func(A9) GR_T9,
	F10 ~func(A10) GR_T10,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GR_T8 ~func(context.Context) GIO_T8,
	GR_T9 ~func(context.Context) GIO_T9,
	GR_T10 ~func(context.Context) GIO_T10,
	GIO_TUPLE10 ~func() E.Either[error, T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	GIO_T8 ~func() E.Either[error, T8],
	GIO_T9 ~func() E.Either[error, T9],
	GIO_T10 ~func() E.Either[error, T10],
	A1,
	T1,
	A2,
	T2,
	A3,
	T3,
	A4,
	T4,
	A5,
	T5,
	A6,
	T6,
	A7,
	T7,
	A8,
	T8,
	A9,
	T9,
	A10,
	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]) GR_TUPLE10

TraverseSeqTuple10 converts a [T.Tuple10] of readers into a reader of a [T.Tuple10].

func TraverseSeqTuple2 added in v1.0.4

func TraverseSeqTuple2[
	GR_TUPLE2 ~func(context.Context) GIO_TUPLE2,
	F1 ~func(A1) GR_T1,
	F2 ~func(A2) GR_T2,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GIO_TUPLE2 ~func() E.Either[error, T.Tuple2[T1, T2]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	A1,
	T1,
	A2,
	T2 any](f1 F1, f2 F2) func(T.Tuple2[A1, A2]) GR_TUPLE2

TraverseSeqTuple2 converts a [T.Tuple2] of readers into a reader of a [T.Tuple2].

func TraverseSeqTuple3 added in v1.0.4

func TraverseSeqTuple3[
	GR_TUPLE3 ~func(context.Context) GIO_TUPLE3,
	F1 ~func(A1) GR_T1,
	F2 ~func(A2) GR_T2,
	F3 ~func(A3) GR_T3,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GIO_TUPLE3 ~func() E.Either[error, T.Tuple3[T1, T2, T3]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	A1,
	T1,
	A2,
	T2,
	A3,
	T3 any](f1 F1, f2 F2, f3 F3) func(T.Tuple3[A1, A2, A3]) GR_TUPLE3

TraverseSeqTuple3 converts a [T.Tuple3] of readers into a reader of a [T.Tuple3].

func TraverseSeqTuple4 added in v1.0.4

func TraverseSeqTuple4[
	GR_TUPLE4 ~func(context.Context) GIO_TUPLE4,
	F1 ~func(A1) GR_T1,
	F2 ~func(A2) GR_T2,
	F3 ~func(A3) GR_T3,
	F4 ~func(A4) GR_T4,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GIO_TUPLE4 ~func() E.Either[error, T.Tuple4[T1, T2, T3, T4]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	A1,
	T1,
	A2,
	T2,
	A3,
	T3,
	A4,
	T4 any](f1 F1, f2 F2, f3 F3, f4 F4) func(T.Tuple4[A1, A2, A3, A4]) GR_TUPLE4

TraverseSeqTuple4 converts a [T.Tuple4] of readers into a reader of a [T.Tuple4].

func TraverseSeqTuple5 added in v1.0.4

func TraverseSeqTuple5[
	GR_TUPLE5 ~func(context.Context) GIO_TUPLE5,
	F1 ~func(A1) GR_T1,
	F2 ~func(A2) GR_T2,
	F3 ~func(A3) GR_T3,
	F4 ~func(A4) GR_T4,
	F5 ~func(A5) GR_T5,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GIO_TUPLE5 ~func() E.Either[error, T.Tuple5[T1, T2, T3, T4, T5]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	A1,
	T1,
	A2,
	T2,
	A3,
	T3,
	A4,
	T4,
	A5,
	T5 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5) func(T.Tuple5[A1, A2, A3, A4, A5]) GR_TUPLE5

TraverseSeqTuple5 converts a [T.Tuple5] of readers into a reader of a [T.Tuple5].

func TraverseSeqTuple6 added in v1.0.4

func TraverseSeqTuple6[
	GR_TUPLE6 ~func(context.Context) GIO_TUPLE6,
	F1 ~func(A1) GR_T1,
	F2 ~func(A2) GR_T2,
	F3 ~func(A3) GR_T3,
	F4 ~func(A4) GR_T4,
	F5 ~func(A5) GR_T5,
	F6 ~func(A6) GR_T6,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GIO_TUPLE6 ~func() E.Either[error, T.Tuple6[T1, T2, T3, T4, T5, T6]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	A1,
	T1,
	A2,
	T2,
	A3,
	T3,
	A4,
	T4,
	A5,
	T5,
	A6,
	T6 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6) func(T.Tuple6[A1, A2, A3, A4, A5, A6]) GR_TUPLE6

TraverseSeqTuple6 converts a [T.Tuple6] of readers into a reader of a [T.Tuple6].

func TraverseSeqTuple7 added in v1.0.4

func TraverseSeqTuple7[
	GR_TUPLE7 ~func(context.Context) GIO_TUPLE7,
	F1 ~func(A1) GR_T1,
	F2 ~func(A2) GR_T2,
	F3 ~func(A3) GR_T3,
	F4 ~func(A4) GR_T4,
	F5 ~func(A5) GR_T5,
	F6 ~func(A6) GR_T6,
	F7 ~func(A7) GR_T7,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GIO_TUPLE7 ~func() E.Either[error, T.Tuple7[T1, T2, T3, T4, T5, T6, T7]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	A1,
	T1,
	A2,
	T2,
	A3,
	T3,
	A4,
	T4,
	A5,
	T5,
	A6,
	T6,
	A7,
	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]) GR_TUPLE7

TraverseSeqTuple7 converts a [T.Tuple7] of readers into a reader of a [T.Tuple7].

func TraverseSeqTuple8 added in v1.0.4

func TraverseSeqTuple8[
	GR_TUPLE8 ~func(context.Context) GIO_TUPLE8,
	F1 ~func(A1) GR_T1,
	F2 ~func(A2) GR_T2,
	F3 ~func(A3) GR_T3,
	F4 ~func(A4) GR_T4,
	F5 ~func(A5) GR_T5,
	F6 ~func(A6) GR_T6,
	F7 ~func(A7) GR_T7,
	F8 ~func(A8) GR_T8,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GR_T8 ~func(context.Context) GIO_T8,
	GIO_TUPLE8 ~func() E.Either[error, T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	GIO_T8 ~func() E.Either[error, T8],
	A1,
	T1,
	A2,
	T2,
	A3,
	T3,
	A4,
	T4,
	A5,
	T5,
	A6,
	T6,
	A7,
	T7,
	A8,
	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]) GR_TUPLE8

TraverseSeqTuple8 converts a [T.Tuple8] of readers into a reader of a [T.Tuple8].

func TraverseSeqTuple9 added in v1.0.4

func TraverseSeqTuple9[
	GR_TUPLE9 ~func(context.Context) GIO_TUPLE9,
	F1 ~func(A1) GR_T1,
	F2 ~func(A2) GR_T2,
	F3 ~func(A3) GR_T3,
	F4 ~func(A4) GR_T4,
	F5 ~func(A5) GR_T5,
	F6 ~func(A6) GR_T6,
	F7 ~func(A7) GR_T7,
	F8 ~func(A8) GR_T8,
	F9 ~func(A9) GR_T9,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GR_T8 ~func(context.Context) GIO_T8,
	GR_T9 ~func(context.Context) GIO_T9,
	GIO_TUPLE9 ~func() E.Either[error, T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	GIO_T8 ~func() E.Either[error, T8],
	GIO_T9 ~func() E.Either[error, T9],
	A1,
	T1,
	A2,
	T2,
	A3,
	T3,
	A4,
	T4,
	A5,
	T5,
	A6,
	T6,
	A7,
	T7,
	A8,
	T8,
	A9,
	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]) GR_TUPLE9

TraverseSeqTuple9 converts a [T.Tuple9] of readers into a reader of a [T.Tuple9].

func TraverseTuple1 added in v1.0.4

func TraverseTuple1[
	GR_TUPLE1 ~func(context.Context) GIO_TUPLE1,
	F1 ~func(A1) GR_T1,
	GR_T1 ~func(context.Context) GIO_T1,
	GIO_TUPLE1 ~func() E.Either[error, T.Tuple1[T1]],
	GIO_T1 ~func() E.Either[error, T1],
	A1,
	T1 any](f1 F1) func(T.Tuple1[A1]) GR_TUPLE1

TraverseTuple1 converts a [T.Tuple1] of readers into a reader of a [T.Tuple1].

func TraverseTuple10 added in v1.0.4

func TraverseTuple10[
	GR_TUPLE10 ~func(context.Context) GIO_TUPLE10,
	F1 ~func(A1) GR_T1,
	F2 ~func(A2) GR_T2,
	F3 ~func(A3) GR_T3,
	F4 ~func(A4) GR_T4,
	F5 ~func(A5) GR_T5,
	F6 ~func(A6) GR_T6,
	F7 ~func(A7) GR_T7,
	F8 ~func(A8) GR_T8,
	F9 ~func(A9) GR_T9,
	F10 ~func(A10) GR_T10,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GR_T8 ~func(context.Context) GIO_T8,
	GR_T9 ~func(context.Context) GIO_T9,
	GR_T10 ~func(context.Context) GIO_T10,
	GIO_TUPLE10 ~func() E.Either[error, T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	GIO_T8 ~func() E.Either[error, T8],
	GIO_T9 ~func() E.Either[error, T9],
	GIO_T10 ~func() E.Either[error, T10],
	A1,
	T1,
	A2,
	T2,
	A3,
	T3,
	A4,
	T4,
	A5,
	T5,
	A6,
	T6,
	A7,
	T7,
	A8,
	T8,
	A9,
	T9,
	A10,
	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]) GR_TUPLE10

TraverseTuple10 converts a [T.Tuple10] of readers into a reader of a [T.Tuple10].

func TraverseTuple2 added in v1.0.4

func TraverseTuple2[
	GR_TUPLE2 ~func(context.Context) GIO_TUPLE2,
	F1 ~func(A1) GR_T1,
	F2 ~func(A2) GR_T2,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GIO_TUPLE2 ~func() E.Either[error, T.Tuple2[T1, T2]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	A1,
	T1,
	A2,
	T2 any](f1 F1, f2 F2) func(T.Tuple2[A1, A2]) GR_TUPLE2

TraverseTuple2 converts a [T.Tuple2] of readers into a reader of a [T.Tuple2].

func TraverseTuple3 added in v1.0.4

func TraverseTuple3[
	GR_TUPLE3 ~func(context.Context) GIO_TUPLE3,
	F1 ~func(A1) GR_T1,
	F2 ~func(A2) GR_T2,
	F3 ~func(A3) GR_T3,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GIO_TUPLE3 ~func() E.Either[error, T.Tuple3[T1, T2, T3]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	A1,
	T1,
	A2,
	T2,
	A3,
	T3 any](f1 F1, f2 F2, f3 F3) func(T.Tuple3[A1, A2, A3]) GR_TUPLE3

TraverseTuple3 converts a [T.Tuple3] of readers into a reader of a [T.Tuple3].

func TraverseTuple4 added in v1.0.4

func TraverseTuple4[
	GR_TUPLE4 ~func(context.Context) GIO_TUPLE4,
	F1 ~func(A1) GR_T1,
	F2 ~func(A2) GR_T2,
	F3 ~func(A3) GR_T3,
	F4 ~func(A4) GR_T4,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GIO_TUPLE4 ~func() E.Either[error, T.Tuple4[T1, T2, T3, T4]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	A1,
	T1,
	A2,
	T2,
	A3,
	T3,
	A4,
	T4 any](f1 F1, f2 F2, f3 F3, f4 F4) func(T.Tuple4[A1, A2, A3, A4]) GR_TUPLE4

TraverseTuple4 converts a [T.Tuple4] of readers into a reader of a [T.Tuple4].

func TraverseTuple5 added in v1.0.4

func TraverseTuple5[
	GR_TUPLE5 ~func(context.Context) GIO_TUPLE5,
	F1 ~func(A1) GR_T1,
	F2 ~func(A2) GR_T2,
	F3 ~func(A3) GR_T3,
	F4 ~func(A4) GR_T4,
	F5 ~func(A5) GR_T5,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GIO_TUPLE5 ~func() E.Either[error, T.Tuple5[T1, T2, T3, T4, T5]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	A1,
	T1,
	A2,
	T2,
	A3,
	T3,
	A4,
	T4,
	A5,
	T5 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5) func(T.Tuple5[A1, A2, A3, A4, A5]) GR_TUPLE5

TraverseTuple5 converts a [T.Tuple5] of readers into a reader of a [T.Tuple5].

func TraverseTuple6 added in v1.0.4

func TraverseTuple6[
	GR_TUPLE6 ~func(context.Context) GIO_TUPLE6,
	F1 ~func(A1) GR_T1,
	F2 ~func(A2) GR_T2,
	F3 ~func(A3) GR_T3,
	F4 ~func(A4) GR_T4,
	F5 ~func(A5) GR_T5,
	F6 ~func(A6) GR_T6,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GIO_TUPLE6 ~func() E.Either[error, T.Tuple6[T1, T2, T3, T4, T5, T6]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	A1,
	T1,
	A2,
	T2,
	A3,
	T3,
	A4,
	T4,
	A5,
	T5,
	A6,
	T6 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6) func(T.Tuple6[A1, A2, A3, A4, A5, A6]) GR_TUPLE6

TraverseTuple6 converts a [T.Tuple6] of readers into a reader of a [T.Tuple6].

func TraverseTuple7 added in v1.0.4

func TraverseTuple7[
	GR_TUPLE7 ~func(context.Context) GIO_TUPLE7,
	F1 ~func(A1) GR_T1,
	F2 ~func(A2) GR_T2,
	F3 ~func(A3) GR_T3,
	F4 ~func(A4) GR_T4,
	F5 ~func(A5) GR_T5,
	F6 ~func(A6) GR_T6,
	F7 ~func(A7) GR_T7,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GIO_TUPLE7 ~func() E.Either[error, T.Tuple7[T1, T2, T3, T4, T5, T6, T7]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	A1,
	T1,
	A2,
	T2,
	A3,
	T3,
	A4,
	T4,
	A5,
	T5,
	A6,
	T6,
	A7,
	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]) GR_TUPLE7

TraverseTuple7 converts a [T.Tuple7] of readers into a reader of a [T.Tuple7].

func TraverseTuple8 added in v1.0.4

func TraverseTuple8[
	GR_TUPLE8 ~func(context.Context) GIO_TUPLE8,
	F1 ~func(A1) GR_T1,
	F2 ~func(A2) GR_T2,
	F3 ~func(A3) GR_T3,
	F4 ~func(A4) GR_T4,
	F5 ~func(A5) GR_T5,
	F6 ~func(A6) GR_T6,
	F7 ~func(A7) GR_T7,
	F8 ~func(A8) GR_T8,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GR_T8 ~func(context.Context) GIO_T8,
	GIO_TUPLE8 ~func() E.Either[error, T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	GIO_T8 ~func() E.Either[error, T8],
	A1,
	T1,
	A2,
	T2,
	A3,
	T3,
	A4,
	T4,
	A5,
	T5,
	A6,
	T6,
	A7,
	T7,
	A8,
	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]) GR_TUPLE8

TraverseTuple8 converts a [T.Tuple8] of readers into a reader of a [T.Tuple8].

func TraverseTuple9 added in v1.0.4

func TraverseTuple9[
	GR_TUPLE9 ~func(context.Context) GIO_TUPLE9,
	F1 ~func(A1) GR_T1,
	F2 ~func(A2) GR_T2,
	F3 ~func(A3) GR_T3,
	F4 ~func(A4) GR_T4,
	F5 ~func(A5) GR_T5,
	F6 ~func(A6) GR_T6,
	F7 ~func(A7) GR_T7,
	F8 ~func(A8) GR_T8,
	F9 ~func(A9) GR_T9,
	GR_T1 ~func(context.Context) GIO_T1,
	GR_T2 ~func(context.Context) GIO_T2,
	GR_T3 ~func(context.Context) GIO_T3,
	GR_T4 ~func(context.Context) GIO_T4,
	GR_T5 ~func(context.Context) GIO_T5,
	GR_T6 ~func(context.Context) GIO_T6,
	GR_T7 ~func(context.Context) GIO_T7,
	GR_T8 ~func(context.Context) GIO_T8,
	GR_T9 ~func(context.Context) GIO_T9,
	GIO_TUPLE9 ~func() E.Either[error, T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]],
	GIO_T1 ~func() E.Either[error, T1],
	GIO_T2 ~func() E.Either[error, T2],
	GIO_T3 ~func() E.Either[error, T3],
	GIO_T4 ~func() E.Either[error, T4],
	GIO_T5 ~func() E.Either[error, T5],
	GIO_T6 ~func() E.Either[error, T6],
	GIO_T7 ~func() E.Either[error, T7],
	GIO_T8 ~func() E.Either[error, T8],
	GIO_T9 ~func() E.Either[error, T9],
	A1,
	T1,
	A2,
	T2,
	A3,
	T3,
	A4,
	T4,
	A5,
	T5,
	A6,
	T6,
	A7,
	T7,
	A8,
	T8,
	A9,
	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]) GR_TUPLE9

TraverseTuple9 converts a [T.Tuple9] of readers into a reader of a [T.Tuple9].

func TryCatch

func TryCatch[
	GRA ~func(context.Context) GIOA,
	GIOA ~func() E.Either[error, A],

	A any](f func(context.Context) func() (A, error)) GRA

TryCatch wraps a reader returning a tuple as an error into ReaderIOEither

func Uneitherize0 added in v1.0.145

func Uneitherize0[GRA ~func(context.Context) GIOA, F ~func(context.Context) (R, error), GIOA ~func() E.Either[error, R], R any](f func() GRA) F

Uneitherize0 converts a function with 0 parameters returning a [GRA] into a function with 0 parameters returning a tuple. The first parameter is considered to be the context.Context.

func Uneitherize1 added in v1.0.145

func Uneitherize1[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0) (R, error), GIOA ~func() E.Either[error, R], T0, R any](f func(T0) GRA) F

Uneitherize1 converts a function with 1 parameters returning a [GRA] into a function with 1 parameters returning a tuple. The first parameter is considered to be the context.Context.

func Uneitherize10 added in v1.0.145

func Uneitherize10[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, R any](f func(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) GRA) F

Uneitherize10 converts a function with 10 parameters returning a [GRA] into a function with 10 parameters returning a tuple. The first parameter is considered to be the context.Context.

func Uneitherize2 added in v1.0.145

func Uneitherize2[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1) (R, error), GIOA ~func() E.Either[error, R], T0, T1, R any](f func(T0, T1) GRA) F

Uneitherize2 converts a function with 2 parameters returning a [GRA] into a function with 2 parameters returning a tuple. The first parameter is considered to be the context.Context.

func Uneitherize3 added in v1.0.145

func Uneitherize3[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, R any](f func(T0, T1, T2) GRA) F

Uneitherize3 converts a function with 3 parameters returning a [GRA] into a function with 3 parameters returning a tuple. The first parameter is considered to be the context.Context.

func Uneitherize4 added in v1.0.145

func Uneitherize4[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2, T3) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, R any](f func(T0, T1, T2, T3) GRA) F

Uneitherize4 converts a function with 4 parameters returning a [GRA] into a function with 4 parameters returning a tuple. The first parameter is considered to be the context.Context.

func Uneitherize5 added in v1.0.145

func Uneitherize5[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2, T3, T4) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, R any](f func(T0, T1, T2, T3, T4) GRA) F

Uneitherize5 converts a function with 5 parameters returning a [GRA] into a function with 5 parameters returning a tuple. The first parameter is considered to be the context.Context.

func Uneitherize6 added in v1.0.145

func Uneitherize6[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2, T3, T4, T5) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, R any](f func(T0, T1, T2, T3, T4, T5) GRA) F

Uneitherize6 converts a function with 6 parameters returning a [GRA] into a function with 6 parameters returning a tuple. The first parameter is considered to be the context.Context.

func Uneitherize7 added in v1.0.145

func Uneitherize7[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2, T3, T4, T5, T6) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, R any](f func(T0, T1, T2, T3, T4, T5, T6) GRA) F

Uneitherize7 converts a function with 7 parameters returning a [GRA] into a function with 7 parameters returning a tuple. The first parameter is considered to be the context.Context.

func Uneitherize8 added in v1.0.145

func Uneitherize8[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2, T3, T4, T5, T6, T7) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, T7, R any](f func(T0, T1, T2, T3, T4, T5, T6, T7) GRA) F

Uneitherize8 converts a function with 8 parameters returning a [GRA] into a function with 8 parameters returning a tuple. The first parameter is considered to be the context.Context.

func Uneitherize9 added in v1.0.145

func Uneitherize9[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2, T3, T4, T5, T6, T7, T8) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, T7, T8, R any](f func(T0, T1, T2, T3, T4, T5, T6, T7, T8) GRA) F

Uneitherize9 converts a function with 9 parameters returning a [GRA] into a function with 9 parameters returning a tuple. The first parameter is considered to be the context.Context.

func WithContext

func WithContext[GRA ~func(context.Context) GIOA, GIOA ~func() E.Either[error, A], A any](ma GRA) GRA

withContext wraps an existing ReaderIOEither and performs a context check for cancellation before delegating

func WithLock added in v1.0.50

func WithLock[
	GRA ~func(context.Context) GIOA,
	GIOA ~func() E.Either[error, A],
	GRCANCEL ~func(context.Context) GIOCANCEL,
	GIOCANCEL ~func() E.Either[error, context.CancelFunc],
	A any](lock GRCANCEL) func(fa GRA) GRA

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

func WithResource

func WithResource[
	GRA ~func(context.Context) GIOA,
	GRR ~func(context.Context) GIOR,
	GRANY ~func(context.Context) GIOANY,
	GIOR ~func() E.Either[error, R],
	GIOA ~func() E.Either[error, A],
	GIOANY ~func() E.Either[error, ANY],
	R, A, ANY any](onCreate GRR, onRelease func(R) GRANY) func(func(R) GRA) GRA

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