overeasy-0.2.0: A purely functional E-Graph library
Safe HaskellSafe-Inferred
LanguageHaskell2010

Overeasy.Streams

Description

Stuff for streaming search results.

Synopsis

Documentation

chooseWith :: (Foldable f, Alternative m) => f a -> (a -> m b) -> m b Source #

Choose one of many alteratives and process it with the given function.

choose :: (Foldable f, Alternative m) => f a -> m a Source #

Choose one of many alteratives.

data Stream r s a Source #

A stream of results. Just a wrapper around LogicT to keep things tidy.

Instances

Instances details
MonadReader r (Stream r s) Source # 
Instance details

Defined in Overeasy.Streams

Methods

ask :: Stream r s r #

local :: (r -> r) -> Stream r s a -> Stream r s a #

reader :: (r -> a) -> Stream r s a #

MonadState s (Stream r s) Source # 
Instance details

Defined in Overeasy.Streams

Methods

get :: Stream r s s #

put :: s -> Stream r s () #

state :: (s -> (a, s)) -> Stream r s a #

Alternative (Stream r s) Source # 
Instance details

Defined in Overeasy.Streams

Methods

empty :: Stream r s a #

(<|>) :: Stream r s a -> Stream r s a -> Stream r s a #

some :: Stream r s a -> Stream r s [a] #

many :: Stream r s a -> Stream r s [a] #

Applicative (Stream r s) Source # 
Instance details

Defined in Overeasy.Streams

Methods

pure :: a -> Stream r s a #

(<*>) :: Stream r s (a -> b) -> Stream r s a -> Stream r s b #

liftA2 :: (a -> b -> c) -> Stream r s a -> Stream r s b -> Stream r s c #

(*>) :: Stream r s a -> Stream r s b -> Stream r s b #

(<*) :: Stream r s a -> Stream r s b -> Stream r s a #

Functor (Stream r s) Source # 
Instance details

Defined in Overeasy.Streams

Methods

fmap :: (a -> b) -> Stream r s a -> Stream r s b #

(<$) :: a -> Stream r s b -> Stream r s a #

Monad (Stream r s) Source # 
Instance details

Defined in Overeasy.Streams

Methods

(>>=) :: Stream r s a -> (a -> Stream r s b) -> Stream r s b #

(>>) :: Stream r s a -> Stream r s b -> Stream r s b #

return :: a -> Stream r s a #

MonadPlus (Stream r s) Source # 
Instance details

Defined in Overeasy.Streams

Methods

mzero :: Stream r s a #

mplus :: Stream r s a -> Stream r s a -> Stream r s a #

MonadLogic (Stream r s) Source # 
Instance details

Defined in Overeasy.Streams

Methods

msplit :: Stream r s a -> Stream r s (Maybe (a, Stream r s a)) #

interleave :: Stream r s a -> Stream r s a -> Stream r s a #

(>>-) :: Stream r s a -> (a -> Stream r s b) -> Stream r s b #

once :: Stream r s a -> Stream r s a #

lnot :: Stream r s a -> Stream r s () #

ifte :: Stream r s a -> (a -> Stream r s b) -> Stream r s b -> Stream r s b #

Monoid (Stream r s a) Source # 
Instance details

Defined in Overeasy.Streams

Methods

mempty :: Stream r s a #

mappend :: Stream r s a -> Stream r s a -> Stream r s a #

mconcat :: [Stream r s a] -> Stream r s a #

Semigroup (Stream r s a) Source # 
Instance details

Defined in Overeasy.Streams

Methods

(<>) :: Stream r s a -> Stream r s a -> Stream r s a #

sconcat :: NonEmpty (Stream r s a) -> Stream r s a #

stimes :: Integral b => b -> Stream r s a -> Stream r s a #

streamAll :: Stream r s a -> r -> s -> [a] Source #

Produces all results from the stream.