Interface BoundedBifunctor<A extends ContraA,​B extends ContraB,​ContraA,​ContraB,​BF extends BoundedBifunctor<?,​?,​?,​?,​BF>>

    • Method Detail

      • biMapL

        default <C extends ContraABoundedBifunctor<C,​B,​ContraA,​ContraB,​BF> biMapL​(Fn1<? super A,​? extends C> fn)
        Covariantly map the left parameter into a value that is covariant to ContraA.
        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 ContraBBoundedBifunctor<A,​C,​ContraA,​ContraB,​BF> biMapR​(Fn1<? super B,​? extends C> fn)
        Covariantly map the right parameter into a value that is covariant to ContraB.
        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 ContraBBoundedBifunctor<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 to ContraA and ContraB, respectively. This is isomorphic to biMapL(lFn).biMapR(rFn).
        Type Parameters:
        C - the new left parameter type
        D - the new right parameter type
        Parameters:
        lFn - the left parameter mapping function
        rFn - the right parameter mapping function
        Returns:
        a bifunctor over C (the new left parameter type) and D (the new right parameter type)