:< -package:compdata

Bidirectional pattern synonym for cons (O(n)) and uncons (O(1)), to be used together with Empty.
leftmost element and the rest of the sequence
Pattern synonym for matching on the leftmost element of a structure.
>>> case ['a','b','c'] of (x :< _) -> x
'a'
leftmost element and the rest of the sequence
Add an element to the tail of a vector.
>>> (3:>4:>5:>Nil) :< 1
3 :> 4 :> 5 :> 1 :> Nil

>>> let x = (3:>4:>5:>Nil) :< 1

>>> :t x
x :: Num a => Vec 4 a
Can be used as a pattern:
>>> let f (_ :< y :< x) = y + x

>>> :t f
f :: Num a => Vec ((n + 1) + 1) a -> a

>>> f (3:>4:>5:>6:>7:>Nil)
13
Also in conjunctions with (:>):
>>> let g (a :> b :> (_ :< y :< x)) = a + b +  x + y

>>> :t g
g :: Num a => Vec ((((n + 1) + 1) + 1) + 1) a -> a

>>> g (1:>2:>3:>4:>5:>Nil)
12
A bidirectional pattern synonym for working with the minimum view of a MinQueue. Using :< to construct a queue performs an insertion in <math> amortized time. When matching on a :< q, forcing q takes <math> time.
A bidirectional pattern synonym for working with the minimum view of a MinPQueue. Using :< to construct a queue performs an insertion in <math> amortized time. When matching on (k, a) :< q, forcing q takes <math> time.
Pattern synonym for matching on the leftmost element of a structure.
>>> case ['a','b','c'] of (x :< _) -> x
'a'
Convenience pattern for row extraction and consolidation at the beginning of an Array.
>>> (x:<xs) = array [4] [0..3]

>>> x
UnsafeArray [] [0]

>>> xs
UnsafeArray [3] [1,2,3]

>>> (x:<xs)
UnsafeArray [4] [0,1,2,3]
Convenience pattern for row extraction and consolidation at the beginning of an Array.
>>> (x:<xs) = array @'[4] [0..3]

>>> toDynamic x
UnsafeArray [] [0]

>>> toDynamic xs
UnsafeArray [3] [1,2,3]

>>> toDynamic (x:<xs)
UnsafeArray [4] [0,1,2,3]
Pattern synonym for cons-side uncons.