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