diff --git a/CoAlgFormula.ml b/CoAlgFormula.ml
index 22da4d0550ae61a8e0cb012b4fc117b36c0717ad..489c2178077b7d7d1b6b6ec30276babde7c07226 100644
--- a/CoAlgFormula.ml
+++ b/CoAlgFormula.ml
@@ -156,12 +156,12 @@ let rec exportFormula_buffer sb f =
       prio 4 f1
   | ALLOWS (s, f1) ->
       Buffer.add_string sb "<{";
-      Buffer.add_string sb (Str.concat "" (L.map string_of_int s));
+      Buffer.add_string sb (Str.concat " " (L.map string_of_int s));
       Buffer.add_string sb "}>";
       prio 4 f1
   | ENFORCES (s, f1) ->
       Buffer.add_string sb "[{";
-      Buffer.add_string sb (Str.concat "" (L.map string_of_int s));
+      Buffer.add_string sb (Str.concat " " (L.map string_of_int s));
       Buffer.add_string sb "}]";
       prio 4 f1
   | MIN (n, s, f1) ->
diff --git a/coalgcompare.ml b/coalgcompare.ml
index 30f86abbf9d86b406f2ccb131778647903ff97d3..7c3620574319369642498a5cde710bf71db2b7f9 100644
--- a/coalgcompare.ml
+++ b/coalgcompare.ml
@@ -43,12 +43,7 @@ let seed =
   Random.int ((1 lsl 30) - 1)
 *)
 
-let seed = 209314489
-
-let _ = 
-  Random.init seed;
-  debugMsg ("seed is " ^ (string_of_int (seed)))
-
+let pseed = ref (209314489)
 
 let sortK = Array.make 1 (CoAlgMisc.MultiModalK, [0])
 
@@ -141,8 +136,13 @@ let solvers =
   [(solvFact, "fact"); (solvCoalg sortK, "CoAlg")]
 
 let printUsage () =
-  print_endline "Usage: \"coalgcompare <logic>\" does tests where";
-  print_endline "       <logic> in { K }";
+  print_endline "Usage: \"coalgcompare [<flags>] <logic> <logicargs>\" does tests where";
+  print_endline "       <flags> in { --seed INITIALSEED }";
+  print_endline "       <logic> in {";
+  print_endline "                     K";
+  print_endline "                     genCL <agents> <list of sizes>";
+  print_endline "                     (e.g. »genCL 1,2,3 4000,42«)";
+  print_endline "                  }";
   exit 1
 
 let doTestK () : testresults =
@@ -232,15 +232,26 @@ let doGenCL aglist sizelist : unit =
 
 let _ =
     let argidx = ref (1) in
-    let fail str = raise (CoAlgFormula.CoAlgException (str)) in
+    let fail str = (prerr_endline str ; printUsage ()) in
     let getarg () =
-        if !argidx >= Array.length Sys.argv then fail "Missing argument" else ();
+        if !argidx >= Array.length Sys.argv then (fail "Error: Missing argument") else ();
         let str = Sys.argv.(!argidx) in
         argidx := 1 + !argidx;
         str
     in
-    if Array.length Sys.argv < 2 then printUsage ()
-    else match Sys.argv.(1) with
+    let pcmd = ref (getarg ()) in
+    let rec parseflags () =
+        match !pcmd with
+        | "--seed" -> (pseed := (int_of_string (getarg ()));
+                       pcmd := getarg ();
+                       parseflags ())
+        | _ -> ()
+    in
+    parseflags ();
+    Random.init !pseed;
+    debugMsg ("seed is " ^ (string_of_int (!pseed)));
+    let cmd = !pcmd in
+    match cmd with
     | "K" -> printRawData (doTestK ())
     | "genCL" -> let p1 = getarg () in
                  let p2 = getarg () in