     
     public func generate() -> ConcatGenerator<S1.Generator, S2.Generator> {
         return ConcatGenerator(base1: base1.generate(), base2: base2.generate(), flag: true)
+    }
+    
+    public func underestimateCount() -> Int {
+        return base1.underestimateCount() + base2.underestimateCount()
     }
 }
 

    
    public func generate() -> Generator {
        return PermutationGenerator(elements: _base, indices: _indices)
    }
}


    
    public func generate() -> ConcatGenerator<S1.Generator, S2.Generator> {
        return ConcatGenerator(base1: base1.generate(), base2: base2.generate(), flag: true)
    }
    
    public func underestimateCount() -> Int {
        return base1.underestimateCount() + base2.underestimateCount()
    }
}

