Am I misreading the code? It seems like the arguments for Every, Some, and None are backwards. They loop over subset, not collection, which is the pattern for everything else.
It's probably too late to change this now, but I'm curious why this was implemented this way.