- data OI a
- type :-> a b = OI a -> b
- iooi :: IO a -> a :-> a
- run :: (a :-> b) -> IO b
- (=:) :: a -> a :-> a
- (?) :: a :-> a
- (#) :: a -> OI a
- idA :: a :-> a
- (<.>) :: (b :-> c) -> (a :-> b) -> a :-> c
- arrA :: (a -> b) -> a :-> b
- firstA :: (a :-> b) -> (a, c) :-> (b, c)
- deTuple :: (a, b) :-> (OI a, OI b)
- deList :: [a] :-> Maybe (OI a, OI [a])
- (<|) :: (b -> c :-> d) -> (a :-> b) -> (a, c) :-> d
- mapOI :: (a :-> b) -> [a] :-> [b]
- mapOI' :: (a :-> b) -> [a] :-> (OI [a], [b])
- zipWithOI :: (a -> b :-> c) -> [a] -> [b] :-> [c]
- zipWithOI' :: (a -> b :-> c) -> [a] -> [b] :-> (OI [b], [c])
- sequenceOI :: [a :-> b] -> [a] :-> ()
- sequenceOI' :: [a :-> b] -> [a] :-> OI [a]

# Data type

# Converter an IO to an interaction function

# Drive an interaction function

# Primitive operators on the interaction data

# Category class methods on (:->)

# Arrow class methods on (:->)

# Embeding interaction data in data structure

# Interaction combinators

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

Connect two interactions into an interaction

mapOI' :: (a :-> b) -> [a] :-> (OI [a], [b])Source

Map interaction function on an interaction list (return results and remainings)

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

Zip a list and an interaction list (return results and remainings)

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

Sequencing interaction functions

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

Sequencing interaction functions (return remainings)