(rulelistp x) recognizes lists where every element satisfies rulep.
(rulelistp x) → *
This is an ordinary std::deflist. It is "strict" in that it requires x to be a "properly" nil-terminated list.