Unfortunately, changing the exception kind or introducing a new exception kind is a significantly breaking change - this is the enum we have to live with.
I suspect the best thing we can do probably is ensure nobody ever actually uses the "plain" conversion: <https://github.com/nim-lang/Nim/issues/18430> > The distinction between catchable exceptions and defects Yes, it's quite arbitrary - at best, they're named `Defect` and `Error` though some of the standard library doesn't even do that leading to confusion over what can/should be caught and what cannot. The other related issue here is that `except:` catches the "uncatchable" exceptions also depending on the dialect of Nim - ie the manual says one thing, the compiler does different things depending on flags passed to it, and different exceptions are raised, also depending on flags. It's quite a mess to try to use exceptions sanely in Nim, specially when creating libraries that don't have control over which dialect is used. Also, when the compiler raises Defect, it also does so through a different mechanism that when user code raises Defect - this introduces yet more spice into the bug sauce.
