I've been looking for an explanation of the Haskell lift function which I don't yet get. There seem to be two kinds of lifting, one of which is making normal functions usable inside monads. I don't understand either type. I've googled for lift but what I've found has not helped me much. Is there a tutorial on what problem using lift solves? Thanks, Dave Feustel