lift functions so they can handle results as if they were plain values