+++

Split the input between the two argument arrows, retagging and merging their outputs. Note that this is in general not a functor. The default definition may be overridden with a more efficient version if desired.
Symmetric choice.
Symmetric choice.
Create a piece of HTML which is the concatenation of two things which can be made into HTML.
A choice between parsers. Keep only the first success.
Fair 2-way interleaving.
Precedence and associativity (right) of (List.++). This also matches (::+).
forVector number_ $ \xs -> forVector number_ $ \ys -> forVector number_ $ \zs -> Vector.toList ((xs +++ ys) +++ zs) == Vector.toList (xs +++ (ys +++ zs))
Infix concatenation of byte strings
Symmetric choice.
Merges two lists discarding repeated elements. The argument lists need to be in order.
> [1,10,100] +++ [9,10,11]
[1,9,10,11,100]
Like (+++) from ArrowChoice
pL +++ pR = left pL >-> right pR
Concatenate strings by a space.
To concatenate two lists whose types are RangeR n m a and RangeR v w a.
>>> :set -XDataKinds

>>> sampleRangeR1 = NilR :++ 'f' :+ 'o' :+ 'o' :: RangeR 2 5 Char

>>> sampleRangeR2 = NilR :++ 'b' :++ 'a' :+ 'r' :: RangeR 1 6 Char

>>> sampleRangeR1 +++ sampleRangeR2
(((((NilR :++ 'f') :++ 'o') :++ 'o') :+ 'b') :+ 'a') :+ 'r'

>>> :type sampleRangeR1 +++ sampleRangeR2
sampleRangeR1 +++ sampleRangeR2 :: RangeR 3 11 Char
Append two lists.
Infix operator for demux.
Compose two signal networks on different clocks in clock-parallel. At one tick of ParClock cl1 cl2, one of the networks is stepped, dependent on which constituent clock has ticked.
Concatenate strings by a newline.