>>> cons a [] [a]
>>> cons a [b, c] [a,b,c]
>>> cons a (Seq.fromList []) fromList [a]
>>> cons a (Seq.fromList [b, c]) fromList [a,b,c]
_Cons :: Prism [a] [b] (a, [a]) (b, [b]) _Cons :: Prism (Seq a) (Seq b) (a, Seq a) (b, Seq b) _Cons :: Prism (Vector a) (Vector b) (a, Vector a) (b, Vector b) _Cons :: Prism' String (Char, String) _Cons :: Prism' Text (Char, Text) _Cons :: Prism' ByteString (Word8, ByteString)
>>> uncons [] Nothing
>>> uncons [a, b, c] Just (a,[b,c])