Macro Do-Seq

Part of:

package fset
( do-seq ( var seq &key ( start nil start?) ( end nil end?) ( from-end? nil from-end??) ( index nil index?) ( value nil)) &body body )
For each element of seq, possibly restricted by start and end, and in
reverse order if from-end? is true, binds var to it and executes body.
If index is supplied, it names a variable that will be bound at each
iteration to the index of the current element of seq. When done, returns
value.