Understanding parser combinators: a deep dive - Scott Wlaschin