package bjc.typeclasses; import java.util.function.Function; /** * A profunctor lens * * @author bjcul * * @param The first whole * @param The second whole * @param The first part * @param The second part */ public interface PFLens { // Container should be Functor once that is ironed out /** * Run the lens in the given functor * * @param First argument * @param second argument * @param Underlying functor * * @param f The function to apply * * @return The result of applying the functor */ > Function> run(Function> f); }