add as-fn macro to convert keywords and sets to functions