Given a LiftEquivalence function, and 1..n Equivalences for different types A₁, A₂, ...Aₙ, returns the given list except every equivalence for type Aᵢ has been replaced by an equivalence for type Kind<F,In1,Out2,Out1,Aᵢ>. For example:
Equivalence
A₁, A₂, ...Aₙ
Aᵢ
Kind<F,In1,Out2,Out1,Aᵢ>
const [eqOptionString, eqOptionNumber] = lifeEquivalences<OptionTypeLambda>( OP.getEquivalence,)( numberEquals, stringEquals,)// eqOptionString ≡ Equivalence<Option<string>>// eqOptionNumber ≡ Equivalence<Option<number>> Copy
const [eqOptionString, eqOptionNumber] = lifeEquivalences<OptionTypeLambda>( OP.getEquivalence,)( numberEquals, stringEquals,)// eqOptionString ≡ Equivalence<Option<string>>// eqOptionNumber ≡ Equivalence<Option<number>>
Rest
Given a LiftEquivalence function, and 1..n
Equivalence
s for different typesA₁, A₂, ...Aₙ
, returns the given list except every equivalence for typeAᵢ
has been replaced by an equivalence for typeKind<F,In1,Out2,Out1,Aᵢ>
. For example:Example