Right now we have a WARNING! type, which is distinct so you can say: make warning! [...] and it has some special knowledge about how to validate errors, put stack traces on them, things like that...
There's obviously significant appeal to getting rid of the WARNING! datatype, and just saying that any object once antiform'd becomes an ERROR!.
But there's a kind of specific schema to errors right now. They have an ID and they have fields for putting in the stack information. There's an error message formatting template.
So what happens if you make an antiform of an object that doesn't fit this schema and use it as an error? What is the system supposed to do with it?
Also, might there be other interesting purposes for antiform OBJECT!?
I had once proposed LAZY! as another unstable antiform. But trying to implement "thenables" I wound up quite displeased at what it did to the code for things like THEN and ELSE. If that was any indication of the web of madness that such a type would bring to the system, we probably don't want it.
ERROR! as Antiform OBJECT! Feels Probably Right, just because WARNING! seems wrong. But I'm torn on it.