Portability | GHC only |
---|---|

Stability | experimental |

Maintainer | ekmett@gmail.com |

- data Tensors f a = a :- (Tensors f (f a))
- headT :: Tensors f a -> a
- tailT :: Tensors f a -> Tensors f (f a)
- tensors :: Functor f => Stream f a -> Tensors f a
- data Stream f a = a :< (f (Stream f a))
- headS :: Stream f a -> a
- tailS :: Stream f a -> f (Stream f a)
- unfoldS :: Functor f => (a -> (b, f a)) -> a -> Stream f b
- class Functor f => Copointed f where
- extract :: f a -> a

- class Copointed f => Comonad f where

# Tensors

Functor f => Functor (Tensors f) | |

Typeable1 f => Typeable1 (Tensors f) | |

Foldable f => Foldable (Tensors f) | |

Traversable f => Traversable (Tensors f) | |

Functor f => Copointed (Tensors f) | While we can not be a |

(Typeable1 f, Typeable a) => Typeable (Tensors f a) |

# f-Branching Streams

Functor f => Functor (Stream f) | |

Typeable1 f => Typeable1 (Stream f) | |

Foldable f => Foldable (Stream f) | |

Traversable f => Traversable (Stream f) | |

Functor f => Comonad (Stream f) | |

Functor f => Copointed (Stream f) | |

(Typeable1 f, Data (f (Stream f a)), Data a) => Data (Stream f a) | |

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

(Typeable1 f, Typeable a) => Typeable (Stream f a) |