Tuple!(size_t[char],size_t) baseCounter( const ref string[] sequences ){
alias Tuple!(size_t[char], size_t) Result;
Result result;
size_t length = 0;
size_t[char][] baseNumbers = new size_t[char][](sequences.length);
foreach(index, ref seq; parallel(sequences)){
foreach(ref letter; seq ){
if( letter in baseNumbers[index]) baseNumbers[index][letter]++;
else baseNumbers[index][letter] = 1;
}
length += seq.length;
}
foreach(baseNumber; baseNumbers){
foreach( key, value; baseNumber ){
if( key in result[0] ) result[0][key] += value;
else result[0][key] = value;
}
}
result[1] = length;
return result;
}