@@ -0,0 +1,621 @@
+package com.example.playground.monadic.parser.combinators;%0A%0Aimport lombok.AccessLevel;%0Aimport lombok.NoArgsConstructor;%0A%0Aimport java.util.function.Function;%0Aimport java.util.stream.BaseStream;%0A%0A@NoArgsConstructor(access = AccessLevel.PRIVATE)%0Apublic final class Combinators %7B%0A    public static %3CT1, T2, E, I, S extends BaseStream%3CI, S%3E%3E Parser%3CT2, E, I, S%3E bind(Parser%3CT1, E, I, S%3E p1,%0A                                                                                      Function%3CT1, Parser%3CT2, E, I, S%3E%3E f) %7B%0A        return input -%3E p1.parse(input).flatMap(pr -%3E f.apply(pr.getResult()).parse(pr.getStream()));%0A    %7D%0A%7D%0A

Add bind combinator