more flexible (hacky) parser; display `empty` properly
change `begin` -> `amb`