What's the reason of this line? ` throw new ParseException(i.Memos[p].ToString()); ` It broke my parser. When I changed it to ` return (IResult<T>)i.Memos[p]; ` everything started work as expected.