Open
Description
Perhaps we don't have to consider arrows as separate from control operators. Given f :: arr a b
we can write e = (>>> f) :: arr e a -> arr e b
. Following definition 4 (page 5) of "A new notation for arrows" we need to check that "e satisfies a ... naturality property"
e ((k ~> θ1) x1) ... ((k ~> θn) xn) = (k ~> θ) (e x1 ... xn)
For our e
this amounts to showing that e ((arr k >>>) x) = (arr k >>>) (e x)
which indeed holds. Thus every arrow gives rise to a control operator. On the other hand we can recover the arrow from the control operator: f = e id
.
Therefore it seems that considering control operators only is sufficient.
Metadata
Assignees
Labels
No labels
Activity