diff --git a/src/main/scala/leon/purescala/ScalaPrinter.scala b/src/main/scala/leon/purescala/ScalaPrinter.scala
index 501096c45db7c82d88c441e53a6564065423944d..e7ce49521e41b8d2fe83506a3fc6aaa1736091e3 100644
--- a/src/main/scala/leon/purescala/ScalaPrinter.scala
+++ b/src/main/scala/leon/purescala/ScalaPrinter.scala
@@ -315,6 +315,25 @@ object ScalaPrinter {
       nsb
     }
 
+    case Choose(ids, pred) => {
+      var nsb = sb
+      nsb.append("(choose { (")
+      for (((id, tpe), i) <- ids.map(id => (id, id.getType)).zipWithIndex) {
+          nsb.append(id.toString+": ")
+          nsb = pp(tpe, nsb, lvl)
+          if (i != ids.size-1) {
+              nsb.append(", ")
+          }
+      }
+      nsb.append(") =>\n")
+      ind(nsb, lvl+1)
+      nsb = pp(pred, nsb, lvl+1)
+      nsb.append("\n")
+      ind(nsb, lvl)
+      nsb.append("})")
+      nsb
+    }
+
     case mex @ MatchExpr(s, csc) => {
       def ppc(sb: StringBuffer, p: Pattern): StringBuffer = p match {
         //case InstanceOfPattern(None,     ctd) =>