After experiment, ~f here is actually the unwrapped-fn.  I do not understand.  ~f get bind to a new function.