by with by_key actually can make sense, especially if the function inputs are being constructed alongside some kind of user input. It's by_cached_key that winds up changing the meaning enough from by_key. @Nadrieril here's some very relevant motivation: