<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def lift(self, func):
 """Map function over monadic value. Takes a function and a monadic value and maps the function over the monadic value Haskell: liftM :: (Monad m) => (a -> b) -> m a -> m b This is really the same function as Functor.fmap, but is instead implemented using bind, and does not rely on us inheriting from Functor. """


        return self.bind(lambda x: self.unit(func(x)))