Compare strings with numbers and diacritics "naturally"
Compare two as naturally, based on some function, a -> String. Use
this where you would ordinarily use sortBy.
List.sortWith (compareOn .name) [{ name = "a10" }, { name = "a2" }]
--> [{ name = "a2" }, { name = "a10" }]
Compare two strings naturally.