context/readereither
import "github.com/IBM/fp-go/context/readereither"
Package readereither implements a specialization of the Reader monad assuming a golang context as the context of the monad and a standard golang error
Functions
func Ap[A, B any](fa ReaderEither[A]) func(ReaderEither[func(A) B]) ReaderEither[B]
func ApS[S1, S2, T any]( setter func(T) func(S1) S2, fa ReaderEither[T], ) func(ReaderEither[S1]) ReaderEither[S2]
ApS attaches a value to a context [S1] to produce a context [S2] by considering the context and the value concurrently
func Ask() ReaderEither[context.Context]
func Bind[S1, S2, T any]( setter func(T) func(S1) S2, f func(S1) ReaderEither[T], ) func(ReaderEither[S1]) ReaderEither[S2]
Bind attaches the result of a computation to a context [S1] to produce a context [S2]
func BindTo[S1, T any]( setter func(T) S1, ) func(ReaderEither[T]) ReaderEither[S1]
BindTo initializes a new state [S1] from a value [T]
func Chain[A, B any](f func(A) ReaderEither[B]) func(ReaderEither[A]) ReaderEither[B]
func ChainEitherK[A, B any](f func(A) ET.Either[error, B]) func(ma ReaderEither[A]) ReaderEither[B]
func ChainOptionK[A, B any](onNone func() error) func(func(A) O.Option[B]) func(ReaderEither[A]) ReaderEither[B]
func Curry0[A any](f func(context.Context) (A, error)) ReaderEither[A]
func Curry1[T1, A any](f func(context.Context, T1) (A, error)) func(T1) ReaderEither[A]
func Curry2[T1, T2, A any](f func(context.Context, T1, T2) (A, error)) func(T1) func(T2) ReaderEither[A]
func Curry3[T1, T2, T3, A any](f func(context.Context, T1, T2, T3) (A, error)) func(T1) func(T2) func(T3) ReaderEither[A]
func Do[S any]( empty S, ) ReaderEither[S]
Bind creates an empty context of type [S] to be used with the [Bind] operation
func Flap[B, A any](a A) func(ReaderEither[func(A) B]) ReaderEither[B]
func From0[A any](f func(context.Context) (A, error)) func() ReaderEither[A]
func From1[T1, A any](f func(context.Context, T1) (A, error)) func(T1) ReaderEither[A]
func From2[T1, T2, A any](f func(context.Context, T1, T2) (A, error)) func(T1, T2) ReaderEither[A]
func From3[T1, T2, T3, A any](f func(context.Context, T1, T2, T3) (A, error)) func(T1, T2, T3) ReaderEither[A]
func FromEither[A any](e ET.Either[error, A]) ReaderEither[A]
func FromPredicate[A any](pred func(A) bool, onFalse func(A) error) func(A) ReaderEither[A]
func Left[A any](l error) ReaderEither[A]
func Let[S1, S2, T any]( setter func(T) func(S1) S2, f func(S1) T, ) func(ReaderEither[S1]) ReaderEither[S2]
Let attaches the result of a computation to a context [S1] to produce a context [S2]
func LetTo[S1, S2, T any]( setter func(T) func(S1) S2, b T, ) func(ReaderEither[S1]) ReaderEither[S2]
LetTo attaches the a value to a context [S1] to produce a context [S2]
func MakeReaderEither[A any](f func(context.Context) ET.Either[error, A]) ReaderEither[A]
func Map[A, B any](f func(A) B) func(ReaderEither[A]) ReaderEither[B]
func MonadAp[A, B any](fab ReaderEither[func(A) B], fa ReaderEither[A]) ReaderEither[B]
func MonadChain[A, B any](ma ReaderEither[A], f func(A) ReaderEither[B]) ReaderEither[B]
func MonadChainEitherK[A, B any](ma ReaderEither[A], f func(A) ET.Either[error, B]) ReaderEither[B]
func MonadFlap[B, A any](fab ReaderEither[func(A) B], a A) ReaderEither[B]
func MonadMap[A, B any](fa ReaderEither[A], f func(A) B) ReaderEither[B]
func Of[A any](a A) ReaderEither[A]
func OrElse[A any](onLeft func(error) ReaderEither[A]) func(ReaderEither[A]) ReaderEither[A]
func Right[A any](r A) ReaderEither[A]
func SequenceArray[A any](ma []ReaderEither[A]) ReaderEither[[]A]
SequenceArray converts a homogeneous sequence of either into an either of sequence
func SequenceT1[A any](a ReaderEither[A]) ReaderEither[T.Tuple1[A]]
func SequenceT2[A, B any](a ReaderEither[A], b ReaderEither[B]) ReaderEither[T.Tuple2[A, B]]
func SequenceT3[A, B, C any](a ReaderEither[A], b ReaderEither[B], c ReaderEither[C]) ReaderEither[T.Tuple3[A, B, C]]
func SequenceT4[A, B, C, D any](a ReaderEither[A], b ReaderEither[B], c ReaderEither[C], d ReaderEither[D]) ReaderEither[T.Tuple4[A, B, C, D]]
func TraverseArray[A, B any](f func(A) ReaderEither[B]) func([]A) ReaderEither[[]B]
TraverseArray transforms an array
func TraverseArrayWithIndex[A, B any](f func(int, A) ReaderEither[B]) func([]A) ReaderEither[[]B]
TraverseArrayWithIndex transforms an array
func Uncurry1[T1, A any](f func(T1) ReaderEither[A]) func(context.Context, T1) (A, error)
func Uncurry2[T1, T2, A any](f func(T1) func(T2) ReaderEither[A]) func(context.Context, T1, T2) (A, error)
func Uncurry3[T1, T2, T3, A any](f func(T1) func(T2) func(T3) ReaderEither[A]) func(context.Context, T1, T2, T3) (A, error)
func WithContext[A any](ma ReaderEither[A]) ReaderEither[A]
withContext wraps an existing ReaderEither and performs a context check for cancellation before deletating
Types
type ReaderEither
ReaderEither is a specialization of the Reader monad for the typical golang scenario
type ReaderEither[A any] RE.ReaderEither[context.Context, error, A]