   /// possible to advance indices.
   @warn_unused_result
   public func previous(i: Index) -> Index {
+    // TODO: swift-3-indexing-model: tests for traps.
     fatalError("EmptyCollection can't advance indices")
   }
 

  /// possible to advance indices.
  @warn_unused_result
  public func advance(i: Index, by n: IndexDistance, limit: Index) -> Index {
    fatalError("EmptyCollection can't advance indices")
  }

  /// The distance between two indexes (always zero).
  @warn_unused_result
  public func distance(from start: Index, to end: Index) -> IndexDistance {
    _precondition(start == 0, "From must be startIndex (or endIndex)")
    _precondition(end == 0, "To must be endIndex (or startIndex)")
    return 0

  /// possible to advance indices.
  @warn_unused_result
  public func advance(i: Index, by n: IndexDistance) -> Index {
    // TODO: swift-3-indexing-model: tests for traps.
    fatalError("EmptyCollection can't advance indices")
  }

