A right-biased disjunctive type with applicative functor requiring a semigroup on the left type. This is useful for composing validation functions.

Static variables

staticread onlyeither:Either<E, A>

Static methods

staticap<B>(this:Either<E, A>, v:Validation<E, A ‑> B>, s:Semigroup<E>):Validation<E, B>

staticinlineensure(this:Either<E, A>, p:A ‑> Bool, error:E):Validation<E, A>

staticinlinefailure<E, A>(e:E):Validation<E, A>

staticinlinefailureNel<E, A>(e:E):VNel<E, A>

staticinlineflatMapV<B>(this:Either<E, A>, f:A ‑> Validation<E, B>):Validation<E, B>

This is not simply flatMap because it is not consistent with ap, as should be the case in other monads. It is equivalent to this.either.flatMap(f).validation

staticinlinefoldLeft<B>(this:Either<E, A>, b:B, f:(B, A) ‑> B):B

staticinlinefoldMap<B>(this:Either<E, A>, f:A ‑> B, m:Monoid<B>):B

staticinlineget_either(this:Either<E, A>):Either<E, A>

staticinlineleftMap<E0>(this:Either<E, A>, f:E ‑> E0):Validation<E0, A>

staticmap<B>(this:Either<E, A>, f:A ‑> B):Validation<E, B>

staticinlinenn<E, A>(a:Null<A>, e:E):Validation<E, A>

staticinlinennNel<E, A>(a:Null<A>, e:E):VNel<E, A>

staticorElseV(this:Either<E, A>, other:Validation<E, A>, s:Semigroup<E>):Validation<E, A>

If this validation is a Right, keep it. Otherwise, try other as an alternative, merging their errors if both are Left.

staticinlinepure<E, A>(a:A):Validation<E, A>

staticinlinesuccess<E, A>(a:A):Validation<E, A>

staticinlinesuccessNel<E, A>(a:A):VNel<E, A>

staticinlineval1<X, A, B>(f:A ‑> B, v1:Validation<X, A>):Validation<X, B>

staticinlineval10<X, A, B, C, D, E, F, G, H, I, J, K>(f:(A, B, C, D, E, F, G, H, I, J) ‑> K, v1:Validation<X, A>, v2:Validation<X, B>, v3:Validation<X, C>, v4:Validation<X, D>, v5:Validation<X, E>, v6:Validation<X, F>, v7:Validation<X, G>, v8:Validation<X, H>, v9:Validation<X, I>, v10:Validation<X, J>, s:Semigroup<X>):Validation<X, K>

staticinlineval11<X, A, B, C, D, E, F, G, H, I, J, K, L>(f:(A, B, C, D, E, F, G, H, I, J, K) ‑> L, v1:Validation<X, A>, v2:Validation<X, B>, v3:Validation<X, C>, v4:Validation<X, D>, v5:Validation<X, E>, v6:Validation<X, F>, v7:Validation<X, G>, v8:Validation<X, H>, v9:Validation<X, I>, v10:Validation<X, J>, v11:Validation<X, K>, s:Semigroup<X>):Validation<X, L>

staticinlineval12<X, A, B, C, D, E, F, G, H, I, J, K, L, M>(f:(A, B, C, D, E, F, G, H, I, J, K, L) ‑> M, v1:Validation<X, A>, v2:Validation<X, B>, v3:Validation<X, C>, v4:Validation<X, D>, v5:Validation<X, E>, v6:Validation<X, F>, v7:Validation<X, G>, v8:Validation<X, H>, v9:Validation<X, I>, v10:Validation<X, J>, v11:Validation<X, K>, v12:Validation<X, L>, s:Semigroup<X>):Validation<X, M>

staticinlineval13<X, A, B, C, D, E, F, G, H, I, J, K, L, M, N>(f:(A, B, C, D, E, F, G, H, I, J, K, L, M) ‑> N, v1:Validation<X, A>, v2:Validation<X, B>, v3:Validation<X, C>, v4:Validation<X, D>, v5:Validation<X, E>, v6:Validation<X, F>, v7:Validation<X, G>, v8:Validation<X, H>, v9:Validation<X, I>, v10:Validation<X, J>, v11:Validation<X, K>, v12:Validation<X, L>, v13:Validation<X, M>, s:Semigroup<X>):Validation<X, N>

staticinlineval14<X, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O>(f:(A, B, C, D, E, F, G, H, I, J, K, L, M, N) ‑> O, v1:Validation<X, A>, v2:Validation<X, B>, v3:Validation<X, C>, v4:Validation<X, D>, v5:Validation<X, E>, v6:Validation<X, F>, v7:Validation<X, G>, v8:Validation<X, H>, v9:Validation<X, I>, v10:Validation<X, J>, v11:Validation<X, K>, v12:Validation<X, L>, v13:Validation<X, M>, v14:Validation<X, N>, s:Semigroup<X>):Validation<X, O>

staticinlineval15<X, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P>(f:(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O) ‑> P, v1:Validation<X, A>, v2:Validation<X, B>, v3:Validation<X, C>, v4:Validation<X, D>, v5:Validation<X, E>, v6:Validation<X, F>, v7:Validation<X, G>, v8:Validation<X, H>, v9:Validation<X, I>, v10:Validation<X, J>, v11:Validation<X, K>, v12:Validation<X, L>, v13:Validation<X, M>, v14:Validation<X, N>, v15:Validation<X, O>, s:Semigroup<X>):Validation<X, P>

staticinlineval16<X, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q>(f:(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P) ‑> Q, v1:Validation<X, A>, v2:Validation<X, B>, v3:Validation<X, C>, v4:Validation<X, D>, v5:Validation<X, E>, v6:Validation<X, F>, v7:Validation<X, G>, v8:Validation<X, H>, v9:Validation<X, I>, v10:Validation<X, J>, v11:Validation<X, K>, v12:Validation<X, L>, v13:Validation<X, M>, v14:Validation<X, N>, v15:Validation<X, O>, v16:Validation<X, P>, s:Semigroup<X>):Validation<X, Q>

staticinlineval17<X, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R>(f:(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q) ‑> R, v1:Validation<X, A>, v2:Validation<X, B>, v3:Validation<X, C>, v4:Validation<X, D>, v5:Validation<X, E>, v6:Validation<X, F>, v7:Validation<X, G>, v8:Validation<X, H>, v9:Validation<X, I>, v10:Validation<X, J>, v11:Validation<X, K>, v12:Validation<X, L>, v13:Validation<X, M>, v14:Validation<X, N>, v15:Validation<X, O>, v16:Validation<X, P>, v17:Validation<X, Q>, s:Semigroup<X>):Validation<X, R>

staticinlineval18<X, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S>(f:(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R) ‑> S, v1:Validation<X, A>, v2:Validation<X, B>, v3:Validation<X, C>, v4:Validation<X, D>, v5:Validation<X, E>, v6:Validation<X, F>, v7:Validation<X, G>, v8:Validation<X, H>, v9:Validation<X, I>, v10:Validation<X, J>, v11:Validation<X, K>, v12:Validation<X, L>, v13:Validation<X, M>, v14:Validation<X, N>, v15:Validation<X, O>, v16:Validation<X, P>, v17:Validation<X, Q>, v18:Validation<X, R>, s:Semigroup<X>):Validation<X, S>

staticinlineval19<X, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T>(f:(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S) ‑> T, v1:Validation<X, A>, v2:Validation<X, B>, v3:Validation<X, C>, v4:Validation<X, D>, v5:Validation<X, E>, v6:Validation<X, F>, v7:Validation<X, G>, v8:Validation<X, H>, v9:Validation<X, I>, v10:Validation<X, J>, v11:Validation<X, K>, v12:Validation<X, L>, v13:Validation<X, M>, v14:Validation<X, N>, v15:Validation<X, O>, v16:Validation<X, P>, v17:Validation<X, Q>, v18:Validation<X, R>, v19:Validation<X, S>, s:Semigroup<X>):Validation<X, T>

staticinlineval2<X, A, B, C>(f:(A, B) ‑> C, v1:Validation<X, A>, v2:Validation<X, B>, s:Semigroup<X>):Validation<X, C>

staticinlineval20<X, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U>(f:(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T) ‑> U, v1:Validation<X, A>, v2:Validation<X, B>, v3:Validation<X, C>, v4:Validation<X, D>, v5:Validation<X, E>, v6:Validation<X, F>, v7:Validation<X, G>, v8:Validation<X, H>, v9:Validation<X, I>, v10:Validation<X, J>, v11:Validation<X, K>, v12:Validation<X, L>, v13:Validation<X, M>, v14:Validation<X, N>, v15:Validation<X, O>, v16:Validation<X, P>, v17:Validation<X, Q>, v18:Validation<X, R>, v19:Validation<X, S>, v20:Validation<X, T>, s:Semigroup<X>):Validation<X, U>

staticinlineval3<X, A, B, C, D>(f:(A, B, C) ‑> D, v1:Validation<X, A>, v2:Validation<X, B>, v3:Validation<X, C>, s:Semigroup<X>):Validation<X, D>

staticinlineval4<X, A, B, C, D, E>(f:(A, B, C, D) ‑> E, v1:Validation<X, A>, v2:Validation<X, B>, v3:Validation<X, C>, v4:Validation<X, D>, s:Semigroup<X>):Validation<X, E>

staticinlineval5<X, A, B, C, D, E, F>(f:(A, B, C, D, E) ‑> F, v1:Validation<X, A>, v2:Validation<X, B>, v3:Validation<X, C>, v4:Validation<X, D>, v5:Validation<X, E>, s:Semigroup<X>):Validation<X, F>

staticinlineval6<X, A, B, C, D, E, F, G>(f:(A, B, C, D, E, F) ‑> G, v1:Validation<X, A>, v2:Validation<X, B>, v3:Validation<X, C>, v4:Validation<X, D>, v5:Validation<X, E>, v6:Validation<X, F>, s:Semigroup<X>):Validation<X, G>

staticinlineval7<X, A, B, C, D, E, F, G, H>(f:(A, B, C, D, E, F, G) ‑> H, v1:Validation<X, A>, v2:Validation<X, B>, v3:Validation<X, C>, v4:Validation<X, D>, v5:Validation<X, E>, v6:Validation<X, F>, v7:Validation<X, G>, s:Semigroup<X>):Validation<X, H>

staticinlineval8<X, A, B, C, D, E, F, G, H, I>(f:(A, B, C, D, E, F, G, H) ‑> I, v1:Validation<X, A>, v2:Validation<X, B>, v3:Validation<X, C>, v4:Validation<X, D>, v5:Validation<X, E>, v6:Validation<X, F>, v7:Validation<X, G>, v8:Validation<X, H>, s:Semigroup<X>):Validation<X, I>

staticinlineval9<X, A, B, C, D, E, F, G, H, I, J>(f:(A, B, C, D, E, F, G, H, I) ‑> J, v1:Validation<X, A>, v2:Validation<X, B>, v3:Validation<X, C>, v4:Validation<X, D>, v5:Validation<X, E>, v6:Validation<X, F>, v7:Validation<X, G>, v8:Validation<X, H>, v9:Validation<X, I>, s:Semigroup<X>):Validation<X, J>

staticinlinevnel<E, A>(e:Either<Nel<E>, A>):VNel<E, A>

staticinlinewrapNel(this:Either<E, A>):VNel<E, A>