generate sample7s accum rands = 
  c : generate sample7s newAccum newRands
  where
    newRands = drop 2 rands
    newAccum = lastN 6 (accum ++ [c])
    res7 = [testSample s (lastN (n-1) accum) | (s,n) <- zip sample7s ns]
    c = newLetter (take 2 rands) res7
generate sample7s accum rands = 
  c : generate sample7s newAccum newRands
  where
    newRands = drop 2 rands
    newAccum = lastN 6 (accum ++ [c])
    res7 = [testSample s (lastN (n-1) accum) | (s,n) <- zip sample7s ns]
    c = newLetter (take 2 rands) res7
generate sample7s accum rands = 
  c : generate sample7s newAccum newRands
  where
    newRands = drop 2 rands
    newAccum = lastN 6 (accum ++ [c])
    res7 = [testSample s (lastN (n-1) accum) | (s,n) <- zip sample7s ns]
    c = newLetter (take 2 rands) res7