class CoordinateND {

  CoordinateND(List<Coordinate> coordinates, SparseArray<T> sa) {
    assert coordinates.size() == sa.getRank();
    this.coordinates = Collections.unmodifiableList(coordinates);
    this.sa = sa;
  }

    CoordinateND(List<Coordinate> coordinates, SparseArray<T> sa);

}