use new strict and attempt combinators
update parser combinators to version with better errors