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

Variables

read onlyeither:Either<E, A>

Methods

ap<B> (v:Validation<E, A ‑> B>, s:Semigroup<E>):Validation<E, B>

inline ensure (p:A ‑> Bool, error:E):Validation<E, A>

inline flatMapV<B> (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

inline foldLeft<B> (b:B, f:B ‑> A ‑> B):B

inline foldMap<B> (f:A ‑> B, m:Monoid<B>):B

inline get_either ():Either<E, A>

inline leftMap<E0> (f:E ‑> E0):Validation<E0, A>

map<B> (f:A ‑> B):Validation<E, B>

orElseV (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.

inline wrapNel ():VNel<E, A>

Static methods

staticinline failure<E, A> (e:E):Validation<E, A>

staticinline failureNel<E, A> (e:E):VNel<E, A>

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

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

staticinline pure<E, A> (a:A):Validation<E, A>

staticinline success<E, A> (a:A):Validation<E, A>

staticinline successNel<E, A> (a:A):VNel<E, A>

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

staticinline val10<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>

staticinline val11<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>

staticinline val12<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>

staticinline val13<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>

staticinline val14<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>

staticinline val15<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>

staticinline val16<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>

staticinline val17<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>

staticinline val18<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>

staticinline val19<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>

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

staticinline val20<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>

staticinline val3<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>

staticinline val4<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>

staticinline val5<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>

staticinline val6<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>

staticinline val7<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>

staticinline val8<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>

staticinline val9<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>

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