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.