diff --git a/src/lib/CoAlgLogicUtils.ml b/src/lib/CoAlgLogicUtils.ml
index 8438f63fa934d6a057d19184e9ff6021b33c2f5d..591cf8cfd0504ffdafe3e2f8e959e4990c840f56 100644
--- a/src/lib/CoAlgLogicUtils.ml
+++ b/src/lib/CoAlgLogicUtils.ml
@@ -68,8 +68,26 @@ let maxDisjoints sort (a: bset) : bset list =
     let tmpf : bset -> int -> bset =
         (fun bs f -> bsetAdd bs (lfFromInt f) ; bs)
     in
-    List.map (List.fold_left tmpf (bsetMake ()))
+    List.map (List.fold_left tmpf (bsetMakeRealEmpty ()))
              (List.map S.elements intlist)
 
+let string_of_coalition sort bs =
+    let modlist = bsetFold (fun x l -> x::l) bs [] in
+    let show modality =
+        let (o,c) = (* open/close brackets *)
+            match lfGetType sort modality with
+            | EnforcesF -> ("[","]")
+            | AllowsF -> ("{","}")
+            | _ -> ("¿","?")
+        in
+        let agents = (Array.to_list (lfGetDestAg sort modality)) in
+        let agents = List.map string_of_int agents in
+        o^(String.concat ", " agents)^c
+    in
+    let modlist = List.map show modlist in
+    "{ " ^ (String.concat ", " modlist) ^ " }"
+
 
+let string_of_coalition_list sort bs_list =
+    String.concat "\n" (List.map (string_of_coalition sort) bs_list)
 
diff --git a/src/lib/CoAlgLogicUtils.mli b/src/lib/CoAlgLogicUtils.mli
index 5fc525bbac2e3903f81bfda6c0b027b0a0c4d535..7d460bdf2ef5a7be4b6a4fa4ff6cdea127807c26 100644
--- a/src/lib/CoAlgLogicUtils.mli
+++ b/src/lib/CoAlgLogicUtils.mli
@@ -10,6 +10,8 @@ open CoolUtils
 val disjointAgents : sort -> localFormula -> localFormula -> bool
 
 val maxDisjoints : sort -> bset -> bset list
+val string_of_coalition : sort -> bset -> string
+val string_of_coalition_list : sort -> bset list -> string