diff --git a/gmlmip_stub.cc b/gmlmip_stub.cc
index e0599076d2d0ae09ac4f68c75a4dad46d7b0a46d..1ae40306e1c667d21e336937b485f76dd557d4b2 100644
--- a/gmlmip_stub.cc
+++ b/gmlmip_stub.cc
@@ -60,6 +60,21 @@ static CAMLprim value setset2caml(const set<set<int> >& vt) {
     return set2CamlList(vt, set2caml);
 }
 
+static void printModVec(FILE* f, const vector<pair<pair<bool,int>,int> >& modvec) {
+    fprintf(f, "GML-Input: /\\ (");
+    for (int i = 0; i < modvec.size(); i++) {
+        bool isdia = modvec[i].first.first;
+        int cnt = modvec[i].first.second;
+        int underl = modvec[i].second;
+        if (i > 0) fprintf(f, ",");
+        if (isdia) {
+            fprintf(f, " <%d> p%d", cnt, underl);
+        } else {
+            fprintf(f, " [%d] p%d", cnt, underl);
+        }
+    }
+    fprintf(f, " )\n");
+}
 
 CAMLprim value gmlRules_stub(value modalities) {
     // parse caml-modalities to a C++ vector