diff --git a/buildbox-tools.cabal b/buildbox-tools.cabal
--- a/buildbox-tools.cabal
+++ b/buildbox-tools.cabal
@@ -1,5 +1,5 @@
 Name:                buildbox-tools
-Version:             1.2.0.0
+Version:             1.3.0.0
 License:             BSD3
 License-file:        LICENSE
 Author:              Ben Lippmeier
@@ -21,7 +21,7 @@
 Executable buildbox-results
   Build-depends: 
         base                 == 4.*,
-        buildbox             == 1.2.*,
+        buildbox             == 1.3.*,
         parseargs            == 0.1.*
   Main-is: Main.hs
   hs-source-dirs: results 
diff --git a/results/Main.hs b/results/Main.hs
--- a/results/Main.hs
+++ b/results/Main.hs
@@ -25,19 +25,18 @@
 		let results	=  (read contents) :: BuildResults
 		putStrLn $ render $ ppr results
 
-	-- Compare two results files.
-	| gotArg args ArgCompare
-	= do	let fileNames	= argsRest args
-		contentss	<- mapM readFile fileNames
+	-- Print the names of all the benchmarks in a file.
+	| Just fileName	<- getArg args ArgNames
+	, []		<- argsRest args
+	= do	contents	<- readFile fileName
+		let results	= (read contents) :: BuildResults
+		putStrLn 
+			$ render 
+			$ vcat
+			$ map (text . benchResultName)
+			$ buildResultBench results
 
-		let (results :: [BuildResults])
-			= map read contentss
-		
-		let [baseline, current] 
-			= map buildResultBench results
 
-		putStrLn $ render $ pprComparisons baseline current
-
 	-- Merge two results files, prefering benchmark results on the left.
 	-- The time and environment fields are taken from the file on the right.
 	| gotArg args ArgMerge
@@ -50,6 +49,36 @@
 			
 		print $ mergeResults results
 
+		
+	-- Compare two results files.
+	| gotArg args ArgCompare
+	= do	let fileNames	= argsRest args
+		contentss	<- mapM readFile fileNames
+
+		let (results :: [BuildResults])
+			= map read contentss
+		
+		let [baseline, current] 
+			= map buildResultBench results
+
+		putStrLn $ render $ vcat $ punctuate (text "\n") $ map ppr
+			 $ compareManyBenchResults 
+				(map statBenchResult baseline)
+				(map statBenchResult current)
+
+	-- Compare two results files.
+	| Just swing	<- getArg args ArgSummarise
+	= do	let fileNames	= argsRest args
+		contentss	<- mapM readFile fileNames
+
+		let (results :: [BuildResults])	= map read contentss
+		let [baseline, current]		= map buildResultBench results
+
+		putStr	$ render $ reportBenchResults (Just swing) 
+			$ compareManyBenchResults 
+				(map statBenchResult baseline)
+				(map statBenchResult current)
+			 
 	| otherwise
 	= usageError args "Nothing to do...\n"
 
