Instance details Defined in Data.Functor.Foldable embed :: Base Natural Natural -> Natural Source # ana :: (a -> Base Natural a) -> a -> Natural Source # apo :: (a -> Base Natural (Either Natural a)) -> a -> Natural Source # postpro :: Recursive Natural => (forall b. Base Natural b -> Base Natural b) -> (a -> Base Natural a) -> a -> Natural Source # gpostpro :: (Recursive Natural, Monad m) => (forall b. m (Base Natural b) -> Base Natural (m b)) -> (forall c. Base Natural c -> Base Natural c) -> (a -> Base Natural (m a)) -> a -> Natural Source #

Instance details Defined in Data.Functor.Foldable embed :: Base [a] [a] -> [a] Source # ana :: (a0 -> Base [a] a0) -> a0 -> [a] Source # apo :: (a0 -> Base [a] (Either [a] a0)) -> a0 -> [a] Source # postpro :: Recursive [a] => (forall b. Base [a] b -> Base [a] b) -> (a0 -> Base [a] a0) -> a0 -> [a] Source # gpostpro :: (Recursive [a], Monad m) => (forall b. m (Base [a] b) -> Base [a] (m b)) -> (forall c. Base [a] c -> Base [a] c) -> (a0 -> Base [a] (m a0)) -> a0 -> [a] Source #

Instance details Defined in Data.Functor.Foldable embed :: Base (Maybe a) (Maybe a) -> Maybe a Source # ana :: (a0 -> Base (Maybe a) a0) -> a0 -> Maybe a Source # apo :: (a0 -> Base (Maybe a) (Either (Maybe a) a0)) -> a0 -> Maybe a Source # postpro :: Recursive (Maybe a) => (forall b. Base (Maybe a) b -> Base (Maybe a) b) -> (a0 -> Base (Maybe a) a0) -> a0 -> Maybe a Source # gpostpro :: (Recursive (Maybe a), Monad m) => (forall b. m (Base (Maybe a) b) -> Base (Maybe a) (m b)) -> (forall c. Base (Maybe a) c -> Base (Maybe a) c) -> (a0 -> Base (Maybe a) (m a0)) -> a0 -> Maybe a Source #

Instance details Defined in Data.Functor.Foldable embed :: Base (NonEmpty a) (NonEmpty a) -> NonEmpty a Source # ana :: (a0 -> Base (NonEmpty a) a0) -> a0 -> NonEmpty a Source # apo :: (a0 -> Base (NonEmpty a) (Either (NonEmpty a) a0)) -> a0 -> NonEmpty a Source # postpro :: Recursive (NonEmpty a) => (forall b. Base (NonEmpty a) b -> Base (NonEmpty a) b) -> (a0 -> Base (NonEmpty a) a0) -> a0 -> NonEmpty a Source # gpostpro :: (Recursive (NonEmpty a), Monad m) => (forall b. m (Base (NonEmpty a) b) -> Base (NonEmpty a) (m b)) -> (forall c. Base (NonEmpty a) c -> Base (NonEmpty a) c) -> (a0 -> Base (NonEmpty a) (m a0)) -> a0 -> NonEmpty a Source #

Instance details Defined in Data.Functor.Foldable embed :: Base (Nu f) (Nu f) -> Nu f Source # ana :: (a -> Base (Nu f) a) -> a -> Nu f Source # apo :: (a -> Base (Nu f) (Either (Nu f) a)) -> a -> Nu f Source # postpro :: Recursive (Nu f) => (forall b. Base (Nu f) b -> Base (Nu f) b) -> (a -> Base (Nu f) a) -> a -> Nu f Source # gpostpro :: (Recursive (Nu f), Monad m) => (forall b. m (Base (Nu f) b) -> Base (Nu f) (m b)) -> (forall c. Base (Nu f) c -> Base (Nu f) c) -> (a -> Base (Nu f) (m a)) -> a -> Nu f Source #

Instance details Defined in Data.Functor.Foldable embed :: Base (Mu f) (Mu f) -> Mu f Source # ana :: (a -> Base (Mu f) a) -> a -> Mu f Source # apo :: (a -> Base (Mu f) (Either (Mu f) a)) -> a -> Mu f Source # postpro :: Recursive (Mu f) => (forall b. Base (Mu f) b -> Base (Mu f) b) -> (a -> Base (Mu f) a) -> a -> Mu f Source # gpostpro :: (Recursive (Mu f), Monad m) => (forall b. m (Base (Mu f) b) -> Base (Mu f) (m b)) -> (forall c. Base (Mu f) c -> Base (Mu f) c) -> (a -> Base (Mu f) (m a)) -> a -> Mu f Source #

Instance details Defined in Data.Functor.Foldable embed :: Base (Fix f) (Fix f) -> Fix f Source # ana :: (a -> Base (Fix f) a) -> a -> Fix f Source # apo :: (a -> Base (Fix f) (Either (Fix f) a)) -> a -> Fix f Source # postpro :: Recursive (Fix f) => (forall b. Base (Fix f) b -> Base (Fix f) b) -> (a -> Base (Fix f) a) -> a -> Fix f Source # gpostpro :: (Recursive (Fix f), Monad m) => (forall b. m (Base (Fix f) b) -> Base (Fix f) (m b)) -> (forall c. Base (Fix f) c -> Base (Fix f) c) -> (a -> Base (Fix f) (m a)) -> a -> Fix f Source #

Instance details Defined in Data.Functor.Foldable embed :: Base (Either a b) (Either a b) -> Either a b Source # ana :: (a0 -> Base (Either a b) a0) -> a0 -> Either a b Source # apo :: (a0 -> Base (Either a b) (Either (Either a b) a0)) -> a0 -> Either a b Source # postpro :: Recursive (Either a b) => (forall b0. Base (Either a b) b0 -> Base (Either a b) b0) -> (a0 -> Base (Either a b) a0) -> a0 -> Either a b Source # gpostpro :: (Recursive (Either a b), Monad m) => (forall b0. m (Base (Either a b) b0) -> Base (Either a b) (m b0)) -> (forall c. Base (Either a b) c -> Base (Either a b) c) -> (a0 -> Base (Either a b) (m a0)) -> a0 -> Either a b Source #

Instance details Defined in Data.Functor.Foldable embed :: Base (Cofree f a) (Cofree f a) -> Cofree f a Source # ana :: (a0 -> Base (Cofree f a) a0) -> a0 -> Cofree f a Source # apo :: (a0 -> Base (Cofree f a) (Either (Cofree f a) a0)) -> a0 -> Cofree f a Source # postpro :: Recursive (Cofree f a) => (forall b. Base (Cofree f a) b -> Base (Cofree f a) b) -> (a0 -> Base (Cofree f a) a0) -> a0 -> Cofree f a Source # gpostpro :: (Recursive (Cofree f a), Monad m) => (forall b. m (Base (Cofree f a) b) -> Base (Cofree f a) (m b)) -> (forall c. Base (Cofree f a) c -> Base (Cofree f a) c) -> (a0 -> Base (Cofree f a) (m a0)) -> a0 -> Cofree f a Source #

Instance details Defined in Data.Functor.Foldable embed :: Base (F f a) (F f a) -> F f a Source # ana :: (a0 -> Base (F f a) a0) -> a0 -> F f a Source # apo :: (a0 -> Base (F f a) (Either (F f a) a0)) -> a0 -> F f a Source # postpro :: Recursive (F f a) => (forall b. Base (F f a) b -> Base (F f a) b) -> (a0 -> Base (F f a) a0) -> a0 -> F f a Source # gpostpro :: (Recursive (F f a), Monad m) => (forall b. m (Base (F f a) b) -> Base (F f a) (m b)) -> (forall c. Base (F f a) c -> Base (F f a) c) -> (a0 -> Base (F f a) (m a0)) -> a0 -> F f a Source #

Functor f => Corecursive Free f a) Source # It may be better to work with the instance for F directly.

Instance details Defined in Data.Functor.Foldable embed :: Base (Free f a) (Free f a) -> Free f a Source # ana :: (a0 -> Base (Free f a) a0) -> a0 -> Free f a Source # apo :: (a0 -> Base (Free f a) (Either (Free f a) a0)) -> a0 -> Free f a Source # postpro :: Recursive (Free f a) => (forall b. Base (Free f a) b -> Base (Free f a) b) -> (a0 -> Base (Free f a) a0) -> a0 -> Free f a Source # gpostpro :: (Recursive (Free f a), Monad m) => (forall b. m (Base (Free f a) b) -> Base (Free f a) (m b)) -> (forall c. Base (Free f a) c -> Base (Free f a) c) -> (a0 -> Base (Free f a) (m a0)) -> a0 -> Free f a Source #

Instance details Defined in Data.Functor.Foldable embed :: Base (FreeT f m a) (FreeT f m a) -> FreeT f m a Source # ana :: (a0 -> Base (FreeT f m a) a0) -> a0 -> FreeT f m a Source # apo :: (a0 -> Base (FreeT f m a) (Either (FreeT f m a) a0)) -> a0 -> FreeT f m a Source # postpro :: Recursive (FreeT f m a) => (forall b. Base (FreeT f m a) b -> Base (FreeT f m a) b) -> (a0 -> Base (FreeT f m a) a0) -> a0 -> FreeT f m a Source # gpostpro :: (Recursive (FreeT f m a), Monad m0) => (forall b. m0 (Base (FreeT f m a) b) -> Base (FreeT f m a) (m0 b)) -> (forall c. Base (FreeT f m a) c -> Base (FreeT f m a) c) -> (a0 -> Base (FreeT f m a) (m0 a0)) -> a0 -> FreeT f m a Source #