Linguistics.Syntax uses branching parser combinators