diff --git a/pkgs/std/traits.dora b/pkgs/std/traits.dora index 55166c623..c078efbf5 100644 --- a/pkgs/std/traits.dora +++ b/pkgs/std/traits.dora @@ -164,6 +164,11 @@ pub trait Iterator { fn map[R](f: (Self::Item): R): Map[Self, R] { Map[Self, R](it = self, fct = f) } + + // @TraitObjectIgnore + // fn collect[X: FromIterator[Self::Item]](): X { + // X::fromIter(self) + // } } pub trait IntoIterator { @@ -207,6 +212,10 @@ impl[I: Iterator, R] Iterator for Map[I, R] { } } +pub trait FromIterator[A] { + fn fromIter[T](iter: T): Self where T: Iterator[Item=A]; +} + pub trait IndexGet { type Index; type Item;