code: func cluster(clusters []*Cluster, distancer ClusterDistancer, threshold float64) []*Cluster {
  	if len(clusters) < 2 {
  		return clusters
  	}
  
  	count := 0
  	for _, cluster := range clusters {
  		count += len(cluster.Pointers)
  	}
  
  	clusters, found := clusterClusters(
  		clusters,
  		// Default initialization, TODO: better bucketing/prefiltering will greatly increase performance.
  		initClusterDistances(clusters, distancer, threshold),
  		distancer,
  		threshold,
  	)
  
  	result := make([]*Cluster, 0, found)
  	for _, cluster := range clusters {
  		if cluster != nil {
  			result = append(result, cluster)
  		}
  	}
  
  	return result
  }
docs: // cluster will modify the passed in clusters, centroid and list of pointers,
  // so a copy must have been made before reaching this function.