Precursor.Control.Category
class Category k cat
(.)
id
(<<<)
(>>>)
class Arrow a
arr
(***)
(&&&)
data Kleisli m a b
returnA
(^>>)
(>>^)
(<<^)
(^<<)
class ArrowZero a
zeroArrow
class ArrowPlus a
(<+>)
class ArrowChoice a
left
right
(+++)
(|||)
class ArrowApply a
app
data ArrowMonad a b
leftApp
class ArrowLoop a
loop