docs: public static <E extends ClusterOrder> Clustering<Model> makeOPTICSCut(E co, double epsilon) {
      // Clustering model we are building
      Clustering<Model> clustering = new Clustering<>("OPTICS Cut Clustering", "optics-cut");
      // Collects noise elements
      ModifiableDBIDs noise = DBIDUtil.newHashSet();
  
      double lastDist = Double.MAX_VALUE;
      double actDist = Double.MAX_VALUE;
  
      // Current working set
      ModifiableDBIDs current = DBIDUtil.newHashSet();
  
      // TODO: can we implement this more nicely with a 1-lookahead?
      DBIDVar prev = DBIDUtil.newVar();
      for(DBIDIter it = co.iter(); it.valid(); prev.set(it), it.advance()) {
        lastDist = actDist;
        actDist = co.getReachability(it);
  
        if(actDist <= epsilon) {
          // the last element before the plot drops belongs to the cluster
          if(lastDist > epsilon && prev.isSet()) {
            // So un-noise it
            noise.remove(prev);
            // Add it to the cluster
            current.add(prev);
          }
          current.add(it);
        }
        else {
          // 'Finish' the previous cluster
          if(!current.isEmpty()) {
            // TODO: do we want a minpts restriction?
            // But we get have only core points guaranteed anyway.
            clustering.addToplevelCluster(new Cluster<Model>(current, ClusterModel.CLUSTER));
            current = DBIDUtil.newHashSet();
          }
          // Add to noise
          noise.add(it);
        }
      }
      // Any unfinished cluster will also be added
      if(!current.isEmpty()) {
        clustering.addToplevelCluster(new Cluster<Model>(current, ClusterModel.CLUSTER));
      }
      // Add noise
      clustering.addToplevelCluster(new Cluster<Model>(noise, true, ClusterModel.CLUSTER));
      return clustering;
    }