Added @djspiewak's lookahead and recover combinators