KeepIf and CountIf for types other than number
Currently KeepIf and CountIf seem to be limited to expressions of numbers, and thus lists of numbers. Sometimes one would like to filter a list of points or even a list of lists (e. g. based on their first element).
This can be worked around (but I don't see why the restriction is imposed): you can create a list with Sequence in which the elements corresponding to the elements original list are the index of the element if the condition is true for the original element and 0 otherwise. Then you can keep the positive elements (i. e. the indexes of the elements for which the condition holds) with KeepIf and create the list of the elements of the original list with these indexes with another Sequence command.
So I propose that the condition can be any boolean expression of the element in question. I also propose that the variable is not compulsorily x but is given as an other parameter, just as in the Sequence command: the current implementation is problematic if one wants to embed KeepIf and/or CountIf commands in each other. An example when that would be practical: keep the numbers k in a list for which the number of occurrences of k in the list is exactly k.