> Am 18.04.2016 um 23:54 schrieb Dave Abrahams via swift-evolution > <swift-evolution@swift.org>: > > > on Sat Apr 16 2016, Thorsten Seitz <swift-evolution@swift.org> wrote: > >>> Am 15.04.2016 um 23:19 schrieb Dmitri Gribenko via swift-evolution >>> <swift-evolution@swift.org>: >>> >>>> On Fri, Apr 15, 2016 at 1:30 PM, Stephan Tolksdorf <s...@quanttec.com> >>>> wrote: >>>>> On 2016-04-12 Dmitri Gribenko via swift-evolution wrote: >> >>>>> Not even to mention that >>>>> indices are valid only in context of a particular collection instance, >>>>> so in this model you could validate an index against one collection >>>>> and use it with another one. >>>> >>>> >>>> The proposal requires Index values to be Comparable. Does that mean that >>>> indices from different collection instances should be comparable i.e. have >>>> a >>>> strict total order? >>> >>> No, comparing indices from unrelated instances produces unspecified >>> results (incl. traps). >> >> Path dependent types as used in Scala would allow making this >> distinction type safe (see >> http://docs.scala-lang.org/tutorials/tour/inner-classes or >> http://danielwestheide.com/blog/2013/02/13/the-neophytes-guide-to-scala-part-13-path-dependent-types.html) >> by allowing the index type to be rooted at the instance. > > Wouldn't that also rule out useful designs, as in those where indices > into one collection are stored in another?
This should still be possible: val a: Collection<T> = ... val indices: List<a.Index> = ... As 'a.Index' is just a normal type it should be possible to declare a collection containing elements of just that type (I haven't tried it out, yet, though, as I currently have no access to a development machine). -Thorsten _______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution