   var gen = d.generate()
   var pairs = Array<(Int, Int)>()
   while let elt = gen.next() {
-    pairs += [elt]
+    let kv = (elt.0.value, elt.1.value)
+    pairs += [kv]
   }
   assert(equalsUnordered(pairs, [ (10, 1010), (20, 1020), (30, 1030) ]))
   assert(identity1 == unsafeBitCast(d, Word.self))

    var gen = d.generate()
    var pairs = Array<(Int, Int)>()
    while let kv = gen.next() {
      pairs.append(kv)
    }
    var expectedPairs = [ (10, 1010 + i), (20, 1020 + i), (30, 1030 + i) ]
    assert(equalsUnordered(pairs, expectedPairs))

  var gen = d.generate()
  var pairs = Array<(Int, Int)>()
  while let kv = gen.next() {
    pairs.append((kv.0.value, kv.1.value))
  }
  var expectedPairs = Array<(Int, Int)>()
  for i in 1...32 {
