Experiment: this version preserves arity, param names, and gives a reasonable function name