Safe Haskell | None |
---|---|

Language | Haskell2010 |

# Documentation

class Category a => Arrow a where Source #

Variant of the standard `Arrow`

type class with a
different `arr`

method so that it can be implemented
for signal functions in Rattus.

arrBox :: Box (b -> c) -> a b c Source #

Lift a function to an arrow. It is here the definition of the
`Arrow`

class differs from the standard one. The function to be
lifted has to be boxed.

first :: a b c -> a (b, d) (c, d) Source #

Send the first component of the input through the argument arrow, and copy the rest unchanged to the output.

second :: a b c -> a (d, b) (d, c) Source #

A mirror image of `first`

.

The default definition may be overridden with a more efficient version if desired.

(***) :: a b c -> a b' c' -> a (b, b') (c, c') Source #

Split the input between the two argument arrows and combine their output. Note that this is in general not a functor.

(&&&) :: a b c -> a b c' -> a b (c, c') Source #

Fanout: send the input to both argument arrows and combine their output.

The default definition may be overridden with a more efficient version if desired.