archives

How to classify type of ML's exn ? (Naive question)

So exn seems kind of like an 'data' type, but with some odd kind of 1-level subclassing (of exn). But exn certainly doesn't seem like a Class type in any simple + common notion of a such a thing.

So what exactly is exn? Why isn't it possible for developers to create these types of their own? (or is my SML wrong?).

Are there other languages where one can create these odd 'exn'-style types? Does generalizing creation of these sorts of types create some other problems or burdens on the rest of the type system?

Aside from raise, are there general classes of problems (development level or problem domain level) that these 'exn' style types are meant to solve?

Many thanks for any answers or resources.

Scott