@override Result<O>? parse(State<I> state) { final r1 = p1.parse(state); if (r1 != null) { return r1; } final r2 = p2.parse(state); if (r2 != null) { return r2; } return null; }