I suspect these are only useful to me; I'll list them in increasing order of presumed implausibility.
1) The ability to detect whether a given string actually names a function. At the moment I do it with TRY: run the function, if it doesn't run then catch the exception and return that it doesn't exist. But it's scarcely elegant.
Illustrative syntax: PATCH_IF IS_A_FUNCTION "%function%" THEN ...
2) Morphic functions that work either as ACTION or PATCH functions (say, with ACTION syntax for definiteness). So I define it with DEFINE_MORPHIC_FUNCTION, just as if it were an action function, then if I call the function in a patch it acts as if there was an INNER_ACTION present.
3) The ability for a function to return an array indexed by something other than integers. As in:
DEFINE_ACTION_FUNCTION my_function
RET_HASH blook
BEGIN
ACTION_DEFINE_ASSOCIATIVE_ARRAY blook BEGIN
this=>that
END
END
4) (This is a fairly wild ask, but...) access to a WEIDU version of OCAML lists. Something like
MAKE_LIST my_list first_entry second_entry third_entry
OUTER_SPRINT head (LIST_HEAD my_list)
LIST_TAIL my_tail my_list
SCS uses that format very extensively, but it has to fake it up: my "lists" are just space-separated strings, and I have functions to extract things from them, but I think I pay a reasonably high install-time price. I wouldn't even ask except that I assume the functionality is in OCAML anyway and it *might* be possible to expose it to WEIDU.