Is lifting the same as subclassing? I.e. in OO, a derived class can call it's superclass' methods, which is really similar to lifting an operation over a larger type, i.e. what 'return' ('pure') does. The difference is that in the OO case it happens automatically, while in the (typed) FP case it uses an explicit conversion.