contiguous "reference" implementation, behaves somewhat differently
quickcheck properties for the contiguous implementation as well