Safe Haskell | None |
---|---|

Language | Haskell2010 |

Type class instances that use direct recursion in a potentially partial
way. This is separated from the rest of `Fold`

because you can
neither control nor qualify the import of instances. Therefore this module
is _extra_ dangerous, as having these instances available applies to the
entire module they’re imported into.

This contains instances that you might _expect_ to see, but which aren’t actually total. For example, folding a lazy list `[a]` is _not_ guaranteed to terminate.

# Documentation

seqFreeT :: (Functor f, Functor h) => DistributiveLaw (->) h f -> DistributiveLaw (->) (Free h) f Source #

# Orphan instances

(Functor f, Foldable f, Eq1 f) => Eq (Fix f) Source # | |

(Functor f, Foldable f, Eq1 f) => Eq (Nu f) Source # | |

(Functor f, Show1 f) => Show (Fix f) Source # | |

(Functor f, Show1 f) => Show (Nu f) Source # | |

Functor f => Recursive ((->) :: Type -> Type -> Type) (Fix f :: Type) (f :: Type -> Type) Source # | |

Functor f => Recursive ((->) :: Type -> Type -> Type) (Nu f :: Type) (f :: Type -> Type) Source # | |

Functor f => Corecursive ((->) :: Type -> Type -> Type) (Mu f :: Type) (f :: Type -> Type) Source # | |

Recursive ((->) :: Type -> Type -> Type) ([a] :: Type) (XNor a :: Type -> Type) Source # | |

Recursive ((->) :: Type -> Type -> Type) (NonEmpty a :: Type) (AndMaybe a :: Type -> Type) Source # | |

Functor f => Recursive ((->) :: Type -> Type -> Type) (Cofree f a :: Type) (EnvT a f :: Type -> Type) Source # | |

Functor f => Recursive ((->) :: Type -> Type -> Type) (Free f a :: Type) (FreeF f a :: Type -> Type) Source # | |