data-fresh-0.2013.251.0: Interface and functor transformers for fresh values

Safe HaskellNone

Control.Monad.Trans.Fresh.Stream

Synopsis

Documentation

newtype FreshT v m a Source

Constructors

FreshT 

Fields

runFreshT :: Cofree Identity v -> m (a, Cofree Identity v)
 

Instances

Applicative m => Fresh v (FreshT v m) 
MonadTrans (FreshT v) 
Monad m => Monad (FreshT v m) 
Functor m => Functor (FreshT v m) 
(Functor m, Monad m) => Applicative (FreshT v m) 

seedStreamSource

Arguments

:: v

Stream seed

-> (v -> v)

Successor

-> Cofree Identity v 

Creates a Cofree Identity v, based on a seed, and a function to split it.

integerStream :: Integer -> Cofree Identity IntegerSource

A stream of integers.

listStream :: [v] -> Cofree Identity vSource

Creates a Cofree Identity v based on an infinite list.

This function will cause an error when the list turns out to be finite.