+ package:clash-prelude

Append two vectors.
>>> (1:>2:>3:>Nil) ++ (7:>8:>Nil)
1 :> 2 :> 3 :> 7 :> 8 :> Nil
Add an element to the head of a vector, and extract all but the last element.
>>> 1 +>> (3:>4:>5:>Nil)
1 :> 3 :> 4 :> Nil

>>> 1 +>> Nil
Nil
Concatenate two BitVectors
Shift in a bit from the MSB side of a BitVector. Equal to right shifting the BitVector by one and replacing the MSB with the bit to be shifted in.
>>> 1 +>>. 0b1111_0000 :: BitVector 8
0b1111_1000

>>> 0 +>>. 0b1111_0000 :: BitVector 8
0b0111_1000
Add an element to the tail of a vector, and extract all but the first element.
>>> (3:>4:>5:>Nil) <<+ 1
4 :> 5 :> 1 :> Nil

>>> Nil <<+ 1
Nil
Shift in a bit from the LSB side of a BitVector. Equal to left shifting the BitVector by one and replacing the LSB with the bit to be shifted in.
>>> 0b1111_0000 .<<+ 0 :: BitVector 8
0b1110_0000

>>> 0b1111_0000 .<<+ 1 :: BitVector 8
0b1110_0001