Interface BoundedBifunctor<A extends ContraA,B extends ContraB,ContraA,ContraB,BF extends BoundedBifunctor<?,?,?,?,BF>>
-
- Type Parameters:
A- The type of the left parameterB- The type of the right parameterContraA- The type of the left parameter upper type boundContraB- The type of the right parameter upper type boundBF- The unification parameter
- All Known Subinterfaces:
Bifunctor<A,B,BF>
- All Known Implementing Classes:
Choice2,Choice2._A,Choice2._B,Choice3,Choice3._A,Choice3._B,Choice3._C,Choice4,Choice4._A,Choice4._B,Choice4._C,Choice4._D,Choice5,Choice5._A,Choice5._B,Choice5._C,Choice5._D,Choice5._E,Choice6,Choice6._A,Choice6._B,Choice6._C,Choice6._D,Choice6._E,Choice6._F,Choice7,Choice7._A,Choice7._B,Choice7._C,Choice7._D,Choice7._E,Choice7._F,Choice7._G,Choice8,Choice8._A,Choice8._B,Choice8._C,Choice8._D,Choice8._E,Choice8._F,Choice8._G,Choice8._H,Const,Either,Either.Left,Either.Right,EitherT,RecursiveResult,RecursiveResult.Recurse,RecursiveResult.Terminate,These,These._A,These._B,These.Both,Tuple2,Tuple3,Tuple4,Tuple5,Tuple6,Tuple7,Tuple8
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
@FunctionalInterface public interface BoundedBifunctor<A extends ContraA,B extends ContraB,ContraA,ContraB,BF extends BoundedBifunctor<?,?,?,?,BF>>ABifunctorthat has both parameter types upper bounded; that is, neither parameters can be mapped to a value that is not covariant to their respective upper bounds- See Also:
Bifunctor
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description <C extends ContraA,D extends ContraB>
BoundedBifunctor<C,D,ContraA,ContraB,BF>biMap(Fn1<? super A,? extends C> lFn, Fn1<? super B,? extends D> rFn)Dually covariantly map both the left and right parameters into values that are covariant toContraAandContraB, respectively.default <C extends ContraA>
BoundedBifunctor<C,B,ContraA,ContraB,BF>biMapL(Fn1<? super A,? extends C> fn)Covariantly map the left parameter into a value that is covariant toContraA.default <C extends ContraB>
BoundedBifunctor<A,C,ContraA,ContraB,BF>biMapR(Fn1<? super B,? extends C> fn)Covariantly map the right parameter into a value that is covariant toContraB.
-
-
-
Method Detail
-
biMapL
default <C extends ContraA> BoundedBifunctor<C,B,ContraA,ContraB,BF> biMapL(Fn1<? super A,? extends C> fn)
Covariantly map the left parameter into a value that is covariant toContraA.- Type Parameters:
C- the new left parameter type- Parameters:
fn- the mapping function- Returns:
- a bifunctor of C (the new parameter type) and B (the same right parameter)
-
biMapR
default <C extends ContraB> BoundedBifunctor<A,C,ContraA,ContraB,BF> biMapR(Fn1<? super B,? extends C> fn)
Covariantly map the right parameter into a value that is covariant toContraB.- Type Parameters:
C- the new right parameter type- Parameters:
fn- the mapping function- Returns:
- a bifunctor of A (the same left parameter) and C (the new parameter type)
-
biMap
<C extends ContraA,D extends ContraB> BoundedBifunctor<C,D,ContraA,ContraB,BF> biMap(Fn1<? super A,? extends C> lFn, Fn1<? super B,? extends D> rFn)
Dually covariantly map both the left and right parameters into values that are covariant toContraAandContraB, respectively. This is isomorphic tobiMapL(lFn).biMapR(rFn).- Type Parameters:
C- the new left parameter typeD- the new right parameter type- Parameters:
lFn- the left parameter mapping functionrFn- the right parameter mapping function- Returns:
- a bifunctor over C (the new left parameter type) and D (the new right parameter type)
-
-