sortBy: internally cache the keyValue comparator

Should this begin with a `@`?