All TASequences can be given instances of Arrow from Control.Arrow.
instance (TASequence s, Arrow a) => Arrow (s a) where
arr f = tsingleton (arr f)
first arrs = case tviewl arrs of
TAEmptyL -> tempty
a :< as -> first a <| first as
Of course, as with #5, this should be defined per-sequence, instead of with one uber-instance.
All
TASequences can be given instances ofArrowfromControl.Arrow.Of course, as with #5, this should be defined per-sequence, instead of with one uber-instance.