Introduce a second-order function
via a second-order version of defund.
(defund2 sofun ...) ; same as defund
The inputs are identical to defund.
The function sofun must satisfy
all the requirements for defsoft,
because defund2 generates (defsoft sofun) (see below).
(defund sofun ...) ; input form with defund2 replaced by defund
sofun is introduced as a first-order function using defund.
It is also recorded as a second-order function via defsoft.
- Implementation of defund2.