19 declare(strict_types=1);
    36         return $this->
variadic([$this, 
'or2'], $parse);
    41         return $this->
variadic([$this, 
'seq'], $parse);
    55         $max = null === $max ? null : $max - 1;
    61                 $this->
lazy([$this, 
'until'], $max, $parse)
    78             $f($x, $cc)->except(
static fn(): 
Result => $g($x, $cc))
   119         $parse = 
array_map([$this, 
'parserFrom'], $parse);
   121         return array_reduce(array_slice($parse, 1), $call, $parse[0]);
   130         if (strlen($expected) === 1) {
   131             return $this->
eq(ord($expected));
   132         } elseif (
'' === $expected) {
   152             ($call(...$arguments))($x, $cc)
 then(callable $f)
Get a new result from the callable or do nothing if this is an error. 
 
simpleSequence(array $parse)
 
simpleEither(array $parse)
 
lazy(callable $call,... $arguments)
 
seq(Closure $f, Closure $g)
 
or2(Closure $f, Closure $g)
 
-type Continuation Closure(Result<Intermediate>): Result<Intermediate> -type Parser Closure(Intermedi...
 
A result encapsulates a value or an error and simplifies the handling of those. 
 
mustEqual(string $expected)
 
variadic(callable $call, array $parse)
Makes a variadic function from a binary one (left associative and requires at leat 1 argument): f(f(a...