Typechecking For ^META Parameters (incl. ANY-ATOM?)

I wanted to point out that typechecking a ^META parameter applies to the unescaped form.

So if you have a ^META argument which says it can accept something unstable like a PACK!, that is written as:

func [^arg [integer! pack?]] [...]

...not...

func [^arg [quoted-integer? quasi-pack?]] [...]

So although you are receiving the arg value in its quoted or quasi form, the type check is in the language of what it was before it was META'd.

This raises a question about the meaning of func [^arg [any-value?]] [...]. Does that encompass unstable antiforms as well as stable ones?

No. And in fact, if you write that then you're using a meta parameter for no reason, because you're just getting the same thing you would have gotten if you had written:

foo: func [arg [any-value?]] [
     arg: meta arg
     ...
]

So the parameter convention isn't giving you any special powers if you type check it as ANY-VALUE?. Error antiforms will become abrupt failures if you try to pass them. Multi-return packs will decay to their first element. Etc.

To get anything special, your ^META parameter's type check has to allow some unstable antiforms. If you want any and all of them, the term I've been using is ANY-ATOM?

Alternative names welcome. But Atom is short, and ties into the whole isotope metaphor.