oi-0.3.1: Library for purely functional lazy interactions with the outer world.

Safe HaskellNone

Data.OI.Combinator

Contents

Synopsis

Interaction Combinators

(|:|) :: (a :-> c) -> (b :-> d) -> (a, b) :-> (c, d)Source

Connect two interactions into an interaction

(|>|) :: (a :-> (p, c)) -> (b :-> (p -> d)) -> (a, b) :-> (c, d)Source

(|/|) :: (a :-> c) -> (c -> b :-> d) -> (a, b) :-> dSource

(|><|) :: (a :-> (p -> (q, c))) -> (b :-> (q -> (p, d))) -> (a, b) :-> (c, d)Source

Iteration

sequenceOI :: [a :-> b] -> [a] :-> [b]Source

foldOI :: (a :-> (b -> b)) -> b -> [a] :-> bSource

Iteration

mapOI :: (a :-> b) -> [a] :-> [b]Source

zipWithOI :: (a -> b :-> c) -> [a] -> [b] :-> [c]Source

zipWithOI' :: (a :-> (b -> c)) -> [a] :-> ([b] -> [c])Source

Conditional Choice

ifOI :: Bool -> (a :-> c) -> (b :-> c) -> Either a b :-> cSource

Conditional branching

choiceOI :: (a :-> c) -> (b :-> c) -> Bool -> Either a b :-> cSource

choiceOIOn :: (t -> a :-> c) -> (t -> b :-> c) -> (t -> Bool) -> t -> Either a b :-> cSource

Sequencing

seqsOI :: [a :-> b] -> [a] :-> ()Source

Sequencing

seqsOI' :: [a] :-> ([a :-> b] -> ())Source