public override IEnumerable <A> AsEnumerable() { var iter = seq.GetEnumerator(); for (int i = 0; i < taken && iter.MoveNext(); i++) { yield return(iter.Current); } }