-- Exercise 17
-- Relative Difficulty: 6
-- (bonus: use ap + lift2' )
lift3' :: (Monad' m) => (a -> b -> c -> d) -> m a -> m b -> m c -> m d
lift3' f ma mb mc = (lift2' f ma mb) `ap` mc
lift3' :: (Monad' m) => (a -> b -> c -> d) -> m a -> m b -> m c -> m d
lift3' f ma mb mc = (lift2' f ma mb) `ap` mc
lift3' f ma mb mc = (lift2' f ma mb) `ap` mc