# Pastebin OuX1GiPO class Into (m :: * -> *) where type IntoType (m :: * -> *) (a :: *) :: * type IntoType m a = m a liftInto0 :: ( y -> IntoType m a ) -> y -> m a liftInto1 :: ( y -> IntoType m a -> IntoType m b ) -> y -> m a -> m b liftInto2 :: ( y -> IntoType m a -> IntoType m b -> IntoType m c ) -> y -> m a -> m b -> m c default liftInto0 :: (Into m) => (y -> IntoType m a ) -> y -> m a liftInto0 f y = f y default liftInto1 :: (Into m) => (y -> IntoType m a -> IntoType m b) -> y -> m a -> m b liftInto1 f y a = f y a default liftInto2 :: (Into m) => (y -> IntoType m a -> IntoType m b -> IntoType m c) -> y -> m a -> m b -> m c liftInto2 f y a b = f y a b