>>> sliceHorizontal 6 ['a'..'z'] ["agmsy","bhntz","ciou","djpv","ekqw","flrx"]
\(NonEmpty xs) -> QC.forAll (QC.choose (1, length xs)) $ \n -> sliceHorizontal n xs == transpose (sliceVertical n (xs::String))
\(NonEmpty xs) -> QC.forAll (QC.choose (1, length xs)) $ \n -> sliceVertical n xs == transpose (sliceHorizontal n (xs::String))The properties do not hold for empty lists because of:
>>> sliceHorizontal 4 ([]::[Int]) [[],[],[],[]]
>>> sliceVertical 6 ['a'..'z'] ["abcdef","ghijkl","mnopqr","stuvwx","yz"]