snoc "tes" 't' == "test" \xs x -> unsnoc (snoc xs x) == Just (xs,x)
cons 't' "est" == "test" \x xs -> uncons (cons x xs) == Just (x,xs)