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>>
ABifunctor
that 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 toContraA
andContraB
, 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 toContraA
andContraB
, 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)
-
-