weave-core
Safe HaskellSafe-Inferred
LanguageHaskell2010

Weave.Oblivious

Description

Oblivious weaves forget the tree they are morally unfolding, saving energy. Like Weave.Lazy, oblivious weaves enable linear-time breadth-first unfolds, but unlike Weave.Lazy, they don't produce a tree.

Synopsis

Documentation

data Weave (m :: Type -> Type) Source #

Oblivious weaves.

The Semigroup operation (<>) combines weaves level-wise.

Constructors

End 
Weft (m (Weave m)) 

Instances

Instances details
Applicative m => Monoid (Weave m) Source # 
Instance details

Defined in Weave.Oblivious

Methods

mempty :: Weave m #

mappend :: Weave m -> Weave m -> Weave m #

mconcat :: [Weave m] -> Weave m #

Applicative m => Semigroup (Weave m) Source # 
Instance details

Defined in Weave.Oblivious

Methods

(<>) :: Weave m -> Weave m -> Weave m #

sconcat :: NonEmpty (Weave m) -> Weave m #

stimes :: Integral b => b -> Weave m -> Weave m #

weft :: m (Weave m) -> Weave m Source #

A weft is one level of Weave. It is a computation which returns the remaining levels.

mesh_ :: Monad m => Weave m -> m () Source #

Run all the wefts in a Weave sequentially.