Versions in this module Expand all Collapse all v0 v0.1.0 Oct 4, 2026 Changes in this version + var ErrGoexit = errors.New("monadz: task goroutine called runtime.Goexit") + var ErrNilError = errors.New("monadz: failure constructed with a nil error") + var ErrNone = errors.New("monadz: value is None") + var ErrZeroTask = errors.New("monadz: Run on a zero Task; use NewTask") + func ConstantBackoff(d time.Duration) func(int) time.Duration + func ExponentialBackoff(base, limit time.Duration) func(int) time.Duration + func Sleep(ctx context.Context, d time.Duration) error + type Either struct + func Left[L, R any](l L) Either[L, R] + func Right[L, R any](r R) Either[L, R] + func (e Either[L, R]) AndThen[R2 any](f func(R) Either[L, R2]) Either[L, R2] + func (e Either[L, R]) BiMap[L2, R2 any](onLeft func(L) L2, onRight func(R) R2) Either[L2, R2] + func (e Either[L, R]) Inspect(f func(R)) Either[L, R] + func (e Either[L, R]) InspectLeft(f func(L)) Either[L, R] + func (e Either[L, R]) IsLeft() bool + func (e Either[L, R]) IsLeftAnd(pred func(L) bool) bool + func (e Either[L, R]) IsRight() bool + func (e Either[L, R]) IsRightAnd(pred func(R) bool) bool + func (e Either[L, R]) Left() Option[L] + func (e Either[L, R]) LeftOr(fallback L) L + func (e Either[L, R]) LeftOrElse(f func(R) L) L + func (e Either[L, R]) MapLeft[L2 any](f func(L) L2) Either[L2, R] + func (e Either[L, R]) MapOr[U any](fallback U, f func(R) U) U + func (e Either[L, R]) Map[R2 any](f func(R) R2) Either[L, R2] + func (e Either[L, R]) Match[U any](onLeft func(L) U, onRight func(R) U) U + func (e Either[L, R]) OrElse[L2 any](f func(L) Either[L2, R]) Either[L2, R] + func (e Either[L, R]) Right() Option[R] + func (e Either[L, R]) RightOr(fallback R) R + func (e Either[L, R]) RightOrElse(f func(L) R) R + func (e Either[L, R]) String() string + func (e Either[L, R]) Swap() Either[R, L] + func (e Either[L, R]) Unpack() (L, R, bool) + type FieldError struct + Err error + Field string + func (e *FieldError) Error() string + func (e *FieldError) Unwrap() error + type Future struct + func (f *Future[T]) Await() Result[T] + func (f *Future[T]) AwaitContext(ctx context.Context) Result[T] + func (f *Future[T]) Cancel() + func (f *Future[T]) Done() <-chan struct{} + func (f *Future[T]) Poll() Option[Result[T]] + type Lazy struct + func LazyOf[T any](f func() (T, error)) Lazy[Result[T]] + func NewLazy[T any](f func() T) Lazy[T] + func (l Lazy[T]) AndThen[U any](f func(T) Lazy[U]) Lazy[U] + func (l Lazy[T]) Get() T + func (l Lazy[T]) Map[U any](f func(T) U) Lazy[U] + func (l Lazy[T]) ZipWith[U, V any](other Lazy[U], f func(T, U) V) Lazy[V] + type Option struct + func At[T any](s []T, i int) Option[T] + func DoOption[T any](f func() T) (res Option[T]) + func FromPtr[T any](p *T) Option[T] + func FromTuple[T any](v T, ok bool) Option[T] + func FromZero[T comparable](v T) Option[T] + func Lookup[K comparable, V any](m map[K]V, k K) Option[V] + func None[T any]() Option[T] + func Some[T any](v T) Option[T] + func WhenFunc[T any](cond bool, f func() T) Option[T] + func When[T any](cond bool, v T) Option[T] + func (o *Option[T]) GetOrInsert(v T) *T + func (o *Option[T]) GetOrInsertWith(f func() T) *T + func (o *Option[T]) Insert(v T) *T + func (o *Option[T]) Replace(v T) Option[T] + func (o *Option[T]) Scan(src any) error + func (o *Option[T]) Take() Option[T] + func (o *Option[T]) TakeIf(pred func(T) bool) Option[T] + func (o *Option[T]) UnmarshalJSON(b []byte) error + func (o *Option[T]) UnmarshalJSONFrom(dec *jsontext.Decoder) error + func (o Option[T]) All() iter.Seq[T] + func (o Option[T]) AndThen[U any](f func(T) Option[U]) Option[U] + func (o Option[T]) And[U any](other Option[U]) Option[U] + func (o Option[T]) Expect(msg string) T + func (o Option[T]) Filter(pred func(T) bool) Option[T] + func (o Option[T]) Get() (T, bool) + func (o Option[T]) Inspect(f func(T)) Option[T] + func (o Option[T]) IsNone() bool + func (o Option[T]) IsNoneOr(pred func(T) bool) bool + func (o Option[T]) IsSome() bool + func (o Option[T]) IsSomeAnd(pred func(T) bool) bool + func (o Option[T]) IsZero() bool + func (o Option[T]) LogValue() slog.Value + func (o Option[T]) MapOrElse[U any](fallback func() U, f func(T) U) U + func (o Option[T]) MapOr[U any](fallback U, f func(T) U) U + func (o Option[T]) Map[U any](f func(T) U) Option[U] + func (o Option[T]) MarshalJSON() ([]byte, error) + func (o Option[T]) MarshalJSONTo(enc *jsontext.Encoder) error + func (o Option[T]) Match[U any](onSome func(T) U, onNone func() U) U + func (o Option[T]) Must() T + func (o Option[T]) OkOr(err error) Result[T] + func (o Option[T]) OkOrElse(f func() error) Result[T] + func (o Option[T]) Or(other Option[T]) Option[T] + func (o Option[T]) OrElse(f func() Option[T]) Option[T] + func (o Option[T]) Ptr() *T + func (o Option[T]) String() string + func (o Option[T]) Then[U any](f func(T) (U, bool)) Option[U] + func (o Option[T]) Try() T + func (o Option[T]) Value() (driver.Value, error) + func (o Option[T]) ValueOr(fallback T) T + func (o Option[T]) ValueOrElse(f func() T) T + func (o Option[T]) ValueOrZero() T + func (o Option[T]) Xor(other Option[T]) Option[T] + func (o Option[T]) ZipWith[U, V any](other Option[U], f func(T, U) V) Option[V] + type Pair struct + First A + Second B + func PairOf[A, B any](a A, b B) Pair[A, B] + func (p Pair[A, B]) String() string + func (p Pair[A, B]) Swap() Pair[B, A] + func (p Pair[A, B]) Unpack() (A, B) + type PanicError struct + Stack []byte + Value any + func (p *PanicError) Error() string + func (p *PanicError) Unwrap() error + type Patch struct + func PatchMissing[T any]() Patch[T] + func PatchNull[T any]() Patch[T] + func PatchSet[T any](v T) Patch[T] + func (p *Patch[T]) UnmarshalJSON(b []byte) error + func (p *Patch[T]) UnmarshalJSONFrom(dec *jsontext.Decoder) error + func (p Patch[T]) Apply(dst *T) + func (p Patch[T]) ApplyOption(dst *Option[T]) + func (p Patch[T]) IsMissing() bool + func (p Patch[T]) IsNull() bool + func (p Patch[T]) IsSet() bool + func (p Patch[T]) IsZero() bool + func (p Patch[T]) Map[U any](f func(T) U) Patch[U] + func (p Patch[T]) MarshalJSON() ([]byte, error) + func (p Patch[T]) MarshalJSONTo(enc *jsontext.Encoder) error + func (p Patch[T]) Match[U any](onSet func(T) U, onNull func() U, onMissing func() U) U + func (p Patch[T]) Option() Option[T] + func (p Patch[T]) String() string + type Reader struct + func Ask[R any]() Reader[R, R] + func NewReader[R, A any](f func(R) A) Reader[R, A] + func ReaderOf[R, A any](a A) Reader[R, A] + func (m Reader[R, A]) AndThen[B any](f func(A) Reader[R, B]) Reader[R, B] + func (m Reader[R, A]) Local(f func(R) R) Reader[R, A] + func (m Reader[R, A]) Map[B any](f func(A) B) Reader[R, B] + func (m Reader[R, A]) Run(r R) A + type Result struct + func DoRecover[T any](f func() T) (res Result[T]) + func Do[T any](f func() T) (res Result[T]) + func Err[T any](err error) Result[T] + func Errf[T any](format string, args ...any) Result[T] + func FromErr(err error) Result[Unit] + func Of[T any](v T, err error) Result[T] + func Ok[T any](v T) Result[T] + func (r Result[T]) All() iter.Seq[T] + func (r Result[T]) AndThen[U any](f func(T) Result[U]) Result[U] + func (r Result[T]) And[U any](other Result[U]) Result[U] + func (r Result[T]) Either() Either[error, T] + func (r Result[T]) Ensure(pred func(T) bool, err error) Result[T] + func (r Result[T]) Err() error + func (r Result[T]) Expect(msg string) T + func (r Result[T]) Get() (T, error) + func (r Result[T]) Inspect(f func(T)) Result[T] + func (r Result[T]) InspectErr(f func(error)) Result[T] + func (r Result[T]) IsErr() bool + func (r Result[T]) IsErrAnd(pred func(error) bool) bool + func (r Result[T]) IsOk() bool + func (r Result[T]) IsOkAnd(pred func(T) bool) bool + func (r Result[T]) LogValue() slog.Value + func (r Result[T]) MapErr(f func(error) error) Result[T] + func (r Result[T]) MapOrElse[U any](onErr func(error) U, onOk func(T) U) U + func (r Result[T]) MapOr[U any](fallback U, f func(T) U) U + func (r Result[T]) Map[U any](f func(T) U) Result[U] + func (r Result[T]) Match[U any](onOk func(T) U, onErr func(error) U) U + func (r Result[T]) Must() T + func (r Result[T]) MustErr() error + func (r Result[T]) Ok() Option[T] + func (r Result[T]) Or(other Result[T]) Result[T] + func (r Result[T]) OrElse(f func(error) Result[T]) Result[T] + func (r Result[T]) Recover(f func(error) (T, error)) Result[T] + func (r Result[T]) String() string + func (r Result[T]) Then[U any](f func(T) (U, error)) Result[U] + func (r Result[T]) Try() T + func (r Result[T]) Validation() Validation[T] + func (r Result[T]) ValueOr(fallback T) T + func (r Result[T]) ValueOrElse(f func(error) T) T + func (r Result[T]) ValueOrZero() T + func (r Result[T]) Wrap(msg string) Result[T] + func (r Result[T]) Wrapf(format string, args ...any) Result[T] + func (r Result[T]) ZipWith[U, V any](other Result[U], f func(T, U) V) Result[V] + type RetryPolicy struct + Backoff func(attempt int) time.Duration + MaxAttempts int + RetryIf func(error) bool + type State struct + func GetStateWith[S, A any](f func(S) A) State[S, A] + func GetState[S any]() State[S, S] + func ModifyState[S any](f func(S) S) State[S, Unit] + func NewState[S, A any](f func(S) (A, S)) State[S, A] + func PutState[S any](s S) State[S, Unit] + func StateOf[S, A any](a A) State[S, A] + func (m State[S, A]) AndThen[B any](f func(A) State[S, B]) State[S, B] + func (m State[S, A]) And[B any](next State[S, B]) State[S, B] + func (m State[S, A]) Eval(s S) A + func (m State[S, A]) Exec(s S) S + func (m State[S, A]) Map[B any](f func(A) B) State[S, B] + func (m State[S, A]) Run(s S) (A, S) + type Task struct + func NewTaskResult[T any](f func(ctx context.Context) Result[T]) Task[T] + func NewTask[T any](f func(ctx context.Context) (T, error)) Task[T] + func TaskErr[T any](err error) Task[T] + func TaskOk[T any](v T) Task[T] + func (t Task[T]) AndThen[U any](f func(T) Task[U]) Task[U] + func (t Task[T]) Delay(d time.Duration) Task[T] + func (t Task[T]) Ensure(pred func(T) bool, err error) Task[T] + func (t Task[T]) Inspect(f func(T)) Task[T] + func (t Task[T]) InspectErr(f func(error)) Task[T] + func (t Task[T]) MapErr(f func(error) error) Task[T] + func (t Task[T]) Map[U any](f func(T) U) Task[U] + func (t Task[T]) Once() Task[T] + func (t Task[T]) OrElse(f func(error) Task[T]) Task[T] + func (t Task[T]) Recover(f func(error) (T, error)) Task[T] + func (t Task[T]) Retry(p RetryPolicy) Task[T] + func (t Task[T]) Run(ctx context.Context) Result[T] + func (t Task[T]) Start(ctx context.Context) *Future[T] + func (t Task[T]) Then[U any](f func(context.Context, T) (U, error)) Task[U] + func (t Task[T]) Timeout(d time.Duration) Task[T] + func (t Task[T]) Wrap(msg string) Task[T] + func (t Task[T]) Wrapf(format string, args ...any) Task[T] + func (t Task[T]) ZipWith[U, V any](other Task[U], f func(T, U) V) Task[V] + type Triple struct + First A + Second B + Third C + func TripleOf[A, B, C any](a A, b B, c C) Triple[A, B, C] + func (t Triple[A, B, C]) String() string + func (t Triple[A, B, C]) Unpack() (A, B, C) + type Unit struct + type Validation struct + func Invalid[T any](errs ...error) Validation[T] + func ValidIf[T any](v T, ok bool, err error) Validation[T] + func Valid[T any](v T) Validation[T] + func (v Validation[T]) AndThen[U any](f func(T) Validation[U]) Validation[U] + func (v Validation[T]) Ensure(pred func(T) bool, err error) Validation[T] + func (v Validation[T]) Err() error + func (v Validation[T]) Errors() []error + func (v Validation[T]) Expect(msg string) T + func (v Validation[T]) Field(name string) Validation[T] + func (v Validation[T]) Get() (T, error) + func (v Validation[T]) Inspect(f func(T)) Validation[T] + func (v Validation[T]) IsInvalid() bool + func (v Validation[T]) IsValid() bool + func (v Validation[T]) MapErr(f func(error) error) Validation[T] + func (v Validation[T]) Map[U any](f func(T) U) Validation[U] + func (v Validation[T]) Match[U any](onValid func(T) U, onInvalid func([]error) U) U + func (v Validation[T]) Must() T + func (v Validation[T]) Result() Result[T] + func (v Validation[T]) String() string + func (v Validation[T]) ValueOr(fallback T) T + func (v Validation[T]) ValueOrElse(f func([]error) T) T + func (v Validation[T]) ValueOrZero() T + func (v Validation[T]) ZipWith[U, V any](other Validation[U], f func(T, U) V) Validation[V] + type Writer struct + func NewWriter[W, A any](a A, w ...W) Writer[W, A] + func Tell[W any](w ...W) Writer[W, Unit] + func (m Writer[W, A]) AndThen[B any](f func(A) Writer[W, B]) Writer[W, B] + func (m Writer[W, A]) Censor(f func([]W) []W) Writer[W, A] + func (m Writer[W, A]) Map[B any](f func(A) B) Writer[W, B] + func (m Writer[W, A]) Run() (A, []W)