/*
 *  @author Ranides Atterwim <ranides@gmail.com>
 *  @copyright Ranides Atterwim
 *  @license WTFPL
 *  @url http://ranides.net/projects/assira
 */

package net.ranides.assira.generic;

/**
 * Interfejs reprezentujący odwzorowanie dwukierunkowe {@code S <-> T} (funktor, wyrażenie lambda). 
 * <p>
 * Może być interpretowany jako uogólnienie interfejsu {@link Runnable}, który 
 * reprezentuje funkcję {@code void -> void} (procedurę) albo interfejsu {@link Callable},
 * który reprezentuje funkcję {@code void -> T}.
 * </p>
 * @param <T> 
 * @param <S> 
 * @author ranides
 */
public interface BiFunction<T,S> extends Function<T,S>, CoFunction<T,S> {

}
