public static ILayer <TG> NextGen <TG> ( this ILayer <TG> layer, int seed, IReadOnlyList <Tuple <Guid, double> > scores, int newGenomeCount ) where TG : IGenome { return(Make( generation: layer.Generation + 1, genomes: scores.OrderByDescending(t => t.Item2) .Take(newGenomeCount) .Select(p => layer.GetGenome(p.Item1)) .ToList() )); }