Add new min(), max(), and count_distinct() aggregation functions.
diff --git a/render.js b/render.js
index 427f4ec..1c0d51a 100644
--- a/render.js
+++ b/render.js
@@ -240,6 +240,26 @@
     }
   },
   
+  min: function(l) {
+    var out = null;
+    for (var i in l) {
+      if (out == null || l[i] < out) {
+	out = l[i];
+      }
+    }
+    return out;
+  },
+  
+  max: function(l) {
+    var out = null;
+    for (var i in l) {
+      if (out == null || l[i] > out) {
+	out = l[i];
+      }
+    }
+    return out;
+  },
+  
   cat: function(l) {
     return l.join(' ');
   },
@@ -247,6 +267,18 @@
   count: function(l) {
     return l.length;
   },
+  
+  count_distinct: function(l) {
+    var a = {};
+    for (var i in l) {
+      a[l[i]] = 1;
+    }
+    var acc = 0;
+    for (var i in a) {
+      acc += 1;
+    }
+    return acc;
+  },
 
   sum: function(l) {
     var acc;
@@ -271,6 +303,9 @@
       var field, func;
       if (g) {
 	func = agg_funcs[g[1]];
+	if (!func) {
+	  throw new Error('unknown aggregation function "' + g[1] + '"');
+	}
 	field = g[2];
       } else {
 	func = null;