public void TestStringParserABAOptional()
{
StringParser p = new StringParser("ABAA");
var results = p.Interleave<string>(
() => p.ParseString("A"),
p.Optional(() => p.ParseString("B")));
var expected = new[] { "A", "B", "A", "A" };
Assert.AreEqual(expected, results);
}