Example #1
0
 @Override
 public <A, B, C> F1<T2<C, A>, T2<C, B>> second(__<F1.µ, A, B> arrow) {
   final F1<A, B> fn = F1.narrow(arrow);
   return pair -> T2.of(pair._1(), fn.apply(pair._2()));
 }
Example #2
0
 @Override
 public <A, B, C> F1<T2<A, C>, T2<B, C>> first(__<F1.µ, A, B> arrow) {
   final F1<A, B> fn = F1.narrow(arrow);
   return pair -> T2.of(fn.apply(pair._1()), pair._2());
 }