streams-3.2.1: Various Haskell 2010 stream comonads

Copyright(C) 2008-2011 Edward Kmett, (C) 2004 Dave Menendez
LicenseBSD-style (see the file LICENSE)
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityprovisional
Portabilityportable
Safe HaskellTrustworthy
LanguageHaskell98

Data.Stream.Future.Skew

Description

Anticausal streams implemented as non-empty skew binary random access lists

The Applicative zips streams, but since these are potentially infinite this is stricter than would be desired. You almost always want

Synopsis

Documentation

(<|) :: a -> Future a -> Future a infixr 5 Source

O(1) cons

cons :: a -> Future a -> Future a Source

length :: Future a -> Int Source

O(log n).

head :: Future a -> a Source

O(1)

tail :: Future a -> Maybe (Future a) Source

O(1).

last :: Future a -> a Source

O(log n).

uncons :: Future a -> (a, Maybe (Future a)) Source

O(1).

index :: Int -> Future a -> a Source

O(log n).

drop :: Int -> Future a -> Maybe (Future a) Source

O(log n).

dropWhile :: (a -> Bool) -> Future a -> Maybe (Future a) Source

from :: Num a => a -> Future a Source

break :: (a -> Bool) -> Future a -> ([a], Maybe (Future a)) Source

span :: (a -> Bool) -> Future a -> ([a], Maybe (Future a)) Source

split :: (a -> Bool) -> Future a -> ([a], Maybe (Future a)) Source

splitW :: (Future a -> Bool) -> Future a -> ([a], Maybe (Future a)) Source

repeat :: a -> Future a Source

replicate :: Int -> a -> Future a Source

O(log n)

insert :: Ord a => a -> Future a -> Future a Source

insertBy :: (a -> a -> Ordering) -> a -> Future a -> Future a Source

update :: Int -> a -> Future a -> Future a Source

adjust :: Int -> (a -> a) -> Future a -> Future a Source

fromList :: [a] -> Future a Source

toFuture :: [a] -> Maybe (Future a) Source