1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
array7<array8<int4>> X;

X.each(function (row) {
  row.each(function (cell) {
    invariant cell.between?(0, 8);
  });
});

invariant X.all?(*uniq?);
X.transpose.all?(*uniq?);

pairs = [];
X.each(function^ (row) {
  row.eachSlice(2, function^ (pair) {
    pairs = pairs.push(pair);
  });
});
invariant pairs.uniq?;

expose X;