Rework the parsing support so that parsers can parse to any object type.