     }
 }
 
-internal func difference<T:CollectionType where T.Generator.Element:Equatable>(a:T, b:T) -> [T.Generator.Element]
+internal func difference<T:CollectionType where T.Generator.Element:Equatable>(a:T, _ b:T) -> [T.Generator.Element]
 {
     return transform(a, b) { (var c, a, b, e) in
         if(!contains(b, e))

        if(hash.count < minLength)
        {
            let guard_index = (numbers_hash_int + numericCast(hash[0])) % self.guards.count;
            let guard = self.guards[guard_index];
            hash.insert(guard, atIndex: 0);
            
            if(hash.count < minLength)
            {
                let guard_index = (numbers_hash_int + numericCast(hash[2])) % self.guards.count;
                let guard = self.guards[guard_index];
                hash.append(guard);
            }
        }
        

    public func decode(value:String!) -> [Int]
    {
        let trimmed = value.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet());
        let hash:[Char] = trimmed.unicodeScalars.map(){ numericCast($0.value) };
        return self.decode(hash);
    }
    
