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>>
A
Bifunctor
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:
-
Method Summary
Modifier and TypeMethodDescriptionDually covariantly map both the left and right parameters into values that are covariant toContraA
andContraB
, respectively.Covariantly map the left parameter into a value that is covariant toContraA
.Covariantly map the right parameter into a value that is covariant toContraB
.
-
Method Details
-
biMapL
default <C extends ContraA> BoundedBifunctor<C,B, biMapLContraA, ContraB, BF> (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, biMapRContraA, ContraB, BF> (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, biMapContraA, ContraB, BF> (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)
-