Portability | portable |
---|---|

Stability | provisional |

Maintainer | Edward Kmett <ekmett@gmail.com> |

- data Stream f a = a :< (f (Stream f a))
- head :: Stream f a -> a
- tail :: Stream f a -> f (Stream f a)
- tails :: Functor f => Stream f a -> Stream f (Stream f a)
- inits1 :: Functor f => Stream f a -> Stream f (NonEmpty a)
- scanr :: Functor f => (a -> f b -> b) -> Stream f a -> Stream f b
- scanl :: Functor f => (a -> b -> a) -> a -> Stream f b -> Stream f a
- unfold :: Functor f => (b -> (a, f b)) -> b -> Stream f a

# The type of streams

Functor f => Functor (Stream f) | |

Applicative f => Applicative (Stream f) | |

Functor f => Comonad (Stream f) | |

Functor f => Extend (Stream f) | |

Distributive f => Distributive (Stream f) | |

Apply f => ComonadApply (Stream f) | |

Apply f => Apply (Stream f) | |

(Eq (f (Stream f a)), Eq a) => Eq (Stream f a) | |

(Ord (f (Stream f a)), Ord a) => Ord (Stream f a) | |

(Show (f (Stream f a)), Show a) => Show (Stream f a) |