ac5918d51bed4db6f5ac837e6660b322123bbd7c
angie
  Tue Apr 26 16:36:45 2011 -0700
Added new lib module hacTree (Hierarchical Agglomerative Clustering),which takes an slList of items and a couple user-defined functions,
and returns a binary tree of clusters, with the leaf nodes containing
the original input items.  The user-defined functions do the interesting
parts: computing distance between two items and/or clusters, and
merging two items and/or clusters into a new cluster.
This is motivated by work on Feature #3711 (vcfTabix: center-weighted
haplotype sorting for display of phased genotypes), but I'm hoping
it might have other uses.

diff --git src/lib/common.c src/lib/common.c
index 17d875e..23547f6 100644
--- src/lib/common.c
+++ src/lib/common.c
@@ -141,31 +141,31 @@
 char c;
 int i;
 
 for (i=0; i<length; ++i)
     {
     c = a[i];
     a[i] = b[i];
     b[i] = c;
     }
 }
 
 
 /** List managing routines. */
 
 /* Count up elements in list. */
-int slCount(void *list)
+int slCount(const void *list)
 {
 struct slList *pt = (struct slList *)list;
 int len = 0;
 
 while (pt != NULL)
     {
     len += 1;
     pt = pt->next;
     }
 return len;
 }
 
 void *slElementFromIx(void *list, int ix)
 /* Return the ix'th element in list.  Returns NULL
  * if no such element. */