forVector number_ $ \xs -> forVector number_ $ \ys -> forVector number_ $ \zs -> Vector.toList ((xs +++ ys) +++ zs) == Vector.toList (xs +++ (ys +++ zs))
> [1,10,100] +++ [9,10,11] [1,9,10,11,100]
>>> :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