If out is always an Ambiguity, why not just return Ambiguity from parser.parse?