In sprite add/insert:
You copied the comment from the previous line, intending to edit it, and didn't.
In sprite HOF:
I think the use of an empty slot to hold each item of the input list needs explanation, or at least start with a really simple example such as MAP (( )+2) OVER (LIST 6 5 7).
In the comment introducing KEEP, "Keep: add a filter to the list," the word "add" confuses me; it sounds as if you're adding more items to the list! If you want it worded this way, I'd say "apply a filter" rather than "add a filter." A different wording would be "Select only some items from a list based on a filter condition."
I think it might require some explanation why the country is item 1 in the first of these but item 6 in the second.
I think the GROUP block used in here needs some explanation. It does a sort, then a COMBINE for each group, then a reformatting of the data, making the entire result three-dimensional.
In sprite sorting:
The comment says "ascending" but the sort is really in descending order.
The "AND AFTER" in the comment should just be "AFTER"; otherwise it seems to imply that the sort mentioned first happens first.
The "ordering with" should refer to item 1, not item 6, because the columns have already been reordered by MAP.
In sprite Pipe: Since you are nesting HOFs inside the PIPE calls, I think this page needs some explanation of what value gets plugged into each of the empty slots.
In sprite Quiz 1: The timing comparisons are unfair, because the two sequential solutions should use REMOVE DUPLICATES from the List Utilities library to avoid that IF COUNTRY ≠ LAST COUNTRY stuff. (FOR EACH COUNTRY OF (REMOVE DUPLICATES OF (MAP ...)) ...). Also, you don't use the # upvar, so you should use the primitive FOR EACH instead of the one from the List Utilities library.
And to illustrate my point about the nesting of HOFs inside PIPEs needing explanation, in the PIPE solution you have
instead of
with the ring's unringed empty slot filled by the first input to PIPE.