While looking into validation in bloqade-circuit, we encountered the need to conveniently display multiple error messages at once. A native python ExceptionGroup is not sufficient, since it doesn't properly display kirin kernel errors.
Therefore, we introduced a ValidationErrorGroup here: https://github.com/QuEraComputing/bloqade-circuit/blob/16429806687591988ea25ee96d2c7c7d35fe9183/src/bloqade/validation/kernel_validation.py#L10.
While the implementation works, and forwards to kirin's exception handler, it still overrides kirin's handler. Therefore, this should be cleaned up and moved to kirin.