{-# htermination liftM3 :: (a -> b -> c -> d) -> ([] a -> [] b -> [] c -> [] d) #-} import Monad