package eithert

import "github.com/IBM/fp-go/internal/eithert"

Index

Functions

func Alt

func Alt[LAZY ~func() HKTFA, E, A, HKTFA any](
	fof func(ET.Either[E, A]) HKTFA,
	fchain func(HKTFA, func(ET.Either[E, A]) HKTFA) HKTFA,

	second LAZY) func(HKTFA) HKTFA

func Ap

func Ap[E, A, B, HKTFAB, HKTFGAB, HKTFA, HKTFB any](
	fap func(HKTFA) func(HKTFGAB) HKTFB,
	fmap func(func(ET.Either[E, func(A) B]) func(ET.Either[E, A]) ET.Either[E, B]) func(HKTFAB) HKTFGAB,
	fa HKTFA) func(HKTFAB) HKTFB

func BiMap

func BiMap[E1, E2, A, B, HKTFA, HKTFB any](
	fmap func(func(ET.Either[E1, A]) ET.Either[E2, B]) func(HKTFA) HKTFB,
	f func(E1) E2, g func(A) B) func(HKTFA) HKTFB

HKTFA = HKT<F, Either<E, A>> HKTFB = HKT<F, Either<E, B>>

func Chain

func Chain[E, A, B, HKTFA, HKTFB any](
	fchain func(func(ET.Either[E, A]) HKTFB) func(HKTFA) HKTFB,
	fof func(ET.Either[E, B]) HKTFB,
	f func(A) HKTFB) func(HKTFA) HKTFB

func FoldE

func FoldE[E, A, HKTEA, HKTB any](mchain func(HKTEA, func(ET.Either[E, A]) HKTB) HKTB, ma HKTEA, onLeft func(E) HKTB, onRight func(A) HKTB) HKTB

func GetOrElse

func GetOrElse[E, A, HKTEA, HKTA any](mchain func(HKTEA, func(ET.Either[E, A]) HKTA) HKTA, mof func(A) HKTA, onLeft func(E) HKTA) func(HKTEA) HKTA

func Left

func Left[E, A, HKTA any](fof func(ET.Either[E, A]) HKTA, e E) HKTA

func LeftF

func LeftF[E, A, HKTE, HKTEA any](fmap func(HKTE, func(E) ET.Either[E, A]) HKTEA, fe HKTE) HKTEA

HKTE = HKT[E] HKTEA = HKT[Either[E, A]]

func Map

func Map[E, A, B, HKTFA, HKTFB any](
	fmap func(func(ET.Either[E, A]) ET.Either[E, B]) func(HKTFA) HKTFB,
	f func(A) B) func(HKTFA) HKTFB

func MapLeft

func MapLeft[E, A, B, HKTFA, HKTFB any](fmap func(func(ET.Either[E, A]) ET.Either[B, A]) func(HKTFA) HKTFB, f func(E) B) func(HKTFA) HKTFB

func MatchE

func MatchE[E, A, HKTEA, HKTB any](mchain func(HKTEA, func(ET.Either[E, A]) HKTB) HKTB, onLeft func(E) HKTB, onRight func(A) HKTB) func(HKTEA) HKTB

func MonadAlt

func MonadAlt[LAZY ~func() HKTFA, E, A, HKTFA any](
	fof func(ET.Either[E, A]) HKTFA,
	fchain func(HKTFA, func(ET.Either[E, A]) HKTFA) HKTFA,

	first HKTFA,
	second LAZY) HKTFA

func MonadAp

func MonadAp[E, A, B, HKTFAB, HKTFGAB, HKTFA, HKTFB any](
	fap func(HKTFGAB, HKTFA) HKTFB,
	fmap func(HKTFAB, func(ET.Either[E, func(A) B]) func(ET.Either[E, A]) ET.Either[E, B]) HKTFGAB,
	fab HKTFAB,
	fa HKTFA) HKTFB

func MonadBiMap

func MonadBiMap[E1, E2, A, B, HKTFA, HKTFB any](fmap func(HKTFA, func(ET.Either[E1, A]) ET.Either[E2, B]) HKTFB, fa HKTFA, f func(E1) E2, g func(A) B) HKTFB

HKTFA = HKT<F, Either<E, A>> HKTFB = HKT<F, Either<E, B>>

func MonadChain

func MonadChain[E, A, B, HKTFA, HKTFB any](
	fchain func(HKTFA, func(ET.Either[E, A]) HKTFB) HKTFB,
	fof func(ET.Either[E, B]) HKTFB,
	ma HKTFA,
	f func(A) HKTFB) HKTFB

HKTFA = HKT<F, Either<E, A>> HKTFB = HKT<F, Either<E, B>>

func MonadMap

func MonadMap[E, A, B, HKTFA, HKTFB any](fmap func(HKTFA, func(ET.Either[E, A]) ET.Either[E, B]) HKTFB, fa HKTFA, f func(A) B) HKTFB

HKTFA = HKT<F, Either<E, A>> HKTFB = HKT<F, Either<E, B>>

func MonadMapLeft

func MonadMapLeft[E, A, B, HKTFA, HKTFB any](fmap func(HKTFA, func(ET.Either[E, A]) ET.Either[B, A]) HKTFB, fa HKTFA, f func(E) B) HKTFB

func OrElse

func OrElse[E1, E2, A, HKTE1A, HKTE2A any](mchain func(HKTE1A, func(ET.Either[E1, A]) HKTE2A) HKTE2A, mof func(ET.Either[E2, A]) HKTE2A, onLeft func(E1) HKTE2A) func(HKTE1A) HKTE2A

func OrLeft

func OrLeft[E1, E2, A, HKTE1A, HKTE2, HKTE2A any](
	mchain func(HKTE1A, func(ET.Either[E1, A]) HKTE2A) HKTE2A,
	mmap func(HKTE2, func(E2) ET.Either[E2, A]) HKTE2A,
	mof func(ET.Either[E2, A]) HKTE2A,
	onLeft func(E1) HKTE2) func(HKTE1A) HKTE2A
func Right[E, A, HKTA any](fof func(ET.Either[E, A]) HKTA, a A) HKTA

func RightF

func RightF[E, A, HKTA, HKTEA any](fmap func(HKTA, func(A) ET.Either[E, A]) HKTEA, fa HKTA) HKTEA

HKTA = HKT[A] HKTEA = HKT[Either[E, A]]

Source Files

either.go

Version
v1.0.151 (latest)
Published
Nov 23, 2024
Platform
linux/amd64
Imports
4 packages
Last checked
4 months ago

Tools for package owners.