A list of validation errors
Defines ways to transform a given type constructor F
Given a type constructor F
, a partial function A => Validated[B]
and a total function B => A
, turns an F[A]
into an F[B]
.
Defines a strategy for tupling A
and B
values, according to types A
and B
.
Defines a strategy for tupling A
and B
values, according to types A
and B
.
The actual implementation avoids nested tuples and eliminates Unit
, so that instead of ending with, e.g.,
the following type:
((Unit, Int), (((Unit, Unit), String)))
We just get:
(Int, String)
The following rules are implemented (by increasing priority):
A valid value of type A
A validated value of type A
can either be Valid
or Invalid
A validated value of type A
can either be Valid
or Invalid
Type of the validated value
Given a type constructor
F
, a partial functionA => Validated[B]
and a total functionB => A
, turns anF[A]
into anF[B]
.A partial invariant functor is an invariant functor whose covariant transformation function is total (ie,
A => Valid[B]
).