     private func _hash(inout hash:[Char], var _ number:Int, _ alphabet:[Char])
     {
         let length = alphabet.count, index = hash.count;
-        do {
+        repeat {
             hash.insert(alphabet[number % length], atIndex: index);
             number = number / length;
         } while( number != 0 );

        
        var alphabet = self.alphabet;
        
        var hashes = split(hash, maxSplit: hash.count, allowEmptySlices: true) { contains(self.guards, $0) };
        let hashesCount = hashes.count, i = ((hashesCount == 2) || (hashesCount == 3)) ? 1 : 0;
        let hash = hashes[i];
        


public class Hashids_<T where T:Equatable, T:UnsignedIntegerType> : HashidsGenerator
{
    public typealias Char = T;
    
    private var minHashLength:UInt;
    
