Simple to understand parser combinator library