diff --git a/testcases/stringrender/IntWrapperRender.scala b/testcases/stringrender/IntWrapperRender.scala
index cdac8112c6ff660e6c8c68f4ffad4796260e8b49..fda0004afa3f52454d62d544e272c5d40be229a6 100644
--- a/testcases/stringrender/IntWrapperRender.scala
+++ b/testcases/stringrender/IntWrapperRender.scala
@@ -38,11 +38,11 @@ object IntWrapperRender {
     case IntWrapper(12) => "12.0"
   }
   
-  @inline def psDuplicate(s: IntWrapper) = (res: String) => (s, res) passes {
+  /*@inline def psDuplicate(s: IntWrapper) = (res: String) => (s, res) passes {
     case IntWrapper(0) => "0 0"
     case IntWrapper(-1) => "-1 -1"
     case IntWrapper(12) => "12 12"
-  }
+  }*/
   
   def repairUnwrapped(s: IntWrapper): String = {
     "IntWrapper(" + s.i + ")"
@@ -56,27 +56,27 @@ object IntWrapperRender {
     "IntWrapper(" + s.i + ")"
   } ensuring psNameChangedSuffix(s)
   
-  def repairDuplicate(s: IntWrapper): String = {
+  /*def repairDuplicate(s: IntWrapper): String = {
     "IntWrapper(" + s.i + ")"
-  } ensuring psDuplicate(s)
+  } ensuring psDuplicate(s)*/
   
-  def synthesisStandard(s: IntWrapper): String = {
+  def synthesizeStandard(s: IntWrapper): String = {
      ???[String]
   } ensuring psStandard(s)
   
-  def synthesisUnwrapped(s: IntWrapper): String = {
+  def synthesizeUnwrapped(s: IntWrapper): String = {
      ???[String]
   } ensuring psUnwrapped(s)
   
-  def synthesisNameChangedPrefix(s: IntWrapper): String = {
+  def synthesizeNameChangedPrefix(s: IntWrapper): String = {
      ???[String]
   } ensuring psNameChangedPrefix(s)
   
-  def synthesisNameChangedSuffix(s: IntWrapper): String = {
+  def synthesizeNameChangedSuffix(s: IntWrapper): String = {
      ???[String]
   } ensuring psNameChangedSuffix(s)
   
-  def synthesisDuplicate(s: IntWrapper): String = {
+  /*def synthesizeDuplicate(s: IntWrapper): String = {
      ???[String]
-  } ensuring psDuplicate(s)
+  } ensuring psDuplicate(s)*/
 }
\ No newline at end of file
diff --git a/testcases/stringrender/ListRender.scala b/testcases/stringrender/ListRender.scala
index dda6c44ef3922e671b8d32edee1773961793d835..b7519eac255947a73f15ba14423f2dd7ca75e900 100644
--- a/testcases/stringrender/ListRender.scala
+++ b/testcases/stringrender/ListRender.scala
@@ -6,7 +6,6 @@
   */
 
 import leon.lang._
-import string.String
 import leon.annotation._
 import leon.collection._
 import leon.collection.ListOps._
@@ -14,76 +13,76 @@ import leon.lang.synthesis._
 
 object ListRender {
   /** Synthesis by example specs */
-  @inline def psStandard(s: List[Int])(res: String) = (s, res) passes {
-    case Cons(12, Cons(-1, Nil)) => "Cons(12, Cons(-1, Nil))"
-    case Cons(1, Nil) => "Cons(1, Nil)"
-    case Nil => "Nil"
+  @inline def psStandard(s: List[Int]) = (res: String) =>(s, res) passes {
+    case Cons(12, Cons(-1, Nil())) => "Cons(12, Cons(-1, Nil))"
+    case Cons(1, Nil()) => "Cons(1, Nil)"
+    case Nil() => "Nil"
   }
   
-  @inline def psRemoveCons(s: List[Int])(res: String) = (s, res) passes {
-    case Cons(12, Cons(-1, Nil)) => "(12, (-1, Nil))"
-    case Cons(1, Nil) => "(1, Nil)"
-    case Nil => "Nil"
+  @inline def psRemoveCons(s: List[Int]) = (res: String) =>(s, res) passes {
+    case Cons(12, Cons(-1, Nil())) => "(12, (-1, Nil))"
+    case Cons(1, Nil()) => "(1, Nil)"
+    case Nil() => "Nil"
   }
   
-  @inline def psRemoveNil(s: List[Int])(res: String) = (s, res) passes {
-    case Cons(12, Cons(-1, Nil)) => "(12, (-1, ))"
-    case Cons(1, Nil) => "(1, )"
-    case Nil => ""
+  @inline def psRemoveNil(s: List[Int]) = (res: String) =>(s, res) passes {
+    case Cons(12, Cons(-1, Nil())) => "(12, (-1, ))"
+    case Cons(1, Nil()) => "(1, )"
+    case Nil() => ""
   }
   
-  @inline def psRemoveLastComma(s: List[Int])(res: String) = (s, res) passes {
-    case Cons(12, Cons(-1, Nil)) => "(12, (-1))"
-    case Cons(1, Nil) => "(1)"
-    case Nil => "()"
+  @inline def psRemoveLastComma(s: List[Int]) = (res: String) =>(s, res) passes {
+    case Cons(12, Cons(-1, Nil())) => "(12, (-1))"
+    case Cons(1, Nil()) => "(1)"
+    case Nil() => "()"
   }
   
-  @inline def psRemoveParentheses(s: List[Int])(res: String) = (s, res) passes {
-    case Cons(12, Cons(-1, Nil)) => "12, -1"
-    case Cons(1, Nil) => "1"
-    case Nil => ""
+  @inline def psRemoveParentheses(s: List[Int]) = (res: String) =>(s, res) passes {
+    case Cons(12, Cons(-1, Nil())) => "12, -1"
+    case Cons(1, Nil()) => "1"
+    case Nil() => ""
   }
   
-  @inline def psWrapParentheses(s: List[Int])(res: String) = (s, res) passes {
-    case Cons(12, Cons(-1, Nil)) => "(12, -1)"
-    case Cons(1, Nil) => "(1)"
-    case Nil => "()"
+  @inline def psWrapParentheses(s: List[Int]) = (res: String) =>(s, res) passes {
+    case Cons(12, Cons(-1, Nil())) => "(12, -1)"
+    case Cons(1, Nil()) => "(1)"
+    case Nil() => "()"
   }
   
-  @inline def psList(s: List[Int])(res: String) = (s, res) passes {
-    case Nil => "List()"
-    case Cons(1, Nil) => "List(1)"
-    case Cons(12, Cons(-1, Nil)) => "List(12, -1)"
+  @inline def psList(s: List[Int]) = (res: String) =>(s, res) passes {
+    case Nil() => "List()"
+    case Cons(1, Nil()) => "List(1)"
+    case Cons(12, Cons(-1, Nil())) => "List(12, -1)"
   }
 
   /** Each function's body is the solution of the previous problem.
     * We want to check that the Leon can repair the programs and also find some ambiguities.*/
   def render1RemoveCons(s: List[Int]): String = {
     s match {
-      case Nil => "Nil"
-      case Cons(a, b) => "Cons(" + a + ", " + render1RemoveCons(b) + ")"
+      case Nil() => "Nil"
+      case Cons(a, b) => "Cons(" + a.toString + ", " + render1RemoveCons(b) + ")"
     }
   } ensuring psRemoveCons(s)
   
   def render2RemoveNil(s: List[Int]): String = {
     s match {
-      case Nil => "Nil"
-      case Cons(a, b) => "(" + a + ", " + render2RemoveNil(b) + ")"
+      case Nil() => "Nil"
+      case Cons(a, b) => "(" + a.toString + ", " + render2RemoveNil(b) + ")"
     }
   } ensuring psRemoveNil(s)
   
   def render3RemoveLastComma(s: List[Int]): String = {
     s match {
-      case Nil => ""
-      case Cons(a, b) => "(" + a + ", " + render3RemoveLastComma(b) + ")"
+      case Nil() => ""
+      case Cons(a, b) => "(" + a.toString + ", " + render3RemoveLastComma(b) + ")"
     }
   } ensuring psRemoveLastComma(s)
   
   def render4RemoveParentheses(s: List[Int]): String = {
     s match {
-      case Nil => ""
-      case Cons(a, Nil) => "(" + a +  ")"
-      case Cons(a, b) => "(" + a + ", " + render4RemoveParentheses(b) + ")"
+      case Nil() => ""
+      case Cons(a, Nil()) => "(" + a.toString +  ")"
+      case Cons(a, b) => "(" + a.toString + ", " + render4RemoveParentheses(b) + ")"
     }
   } ensuring psRemoveParentheses(s)
   
@@ -91,18 +90,18 @@ object ListRender {
    * in order to add strings to the left and to the right (see render6List) */
   def render5WrapParentheses(s: List[Int]): String = {
     s match {
-      case Nil => ""
-      case Cons(a, Nil) => a.toString
-      case Cons(a, b) => a + ", " + render5WrapParentheses(b)
+      case Nil() => ""
+      case Cons(a, Nil()) => a.toString
+      case Cons(a, b) => a.toString + ", " + render5WrapParentheses(b)
     }
   } ensuring psWrapParentheses(s)
   
   def render6List(s: List[Int]): String = {
     def rec(s: List[Int]): String =
       s match {
-        case Nil => ""
-        case Cons(a, Nil) => a
-        case Cons(a, b) => a + ", " + render6List(b)
+        case Nil() => ""
+        case Cons(a, Nil()) => a.toString
+        case Cons(a, b) => a.toString + ", " + render6List(b)
       }
     "(" + rec(s) + ")"
   } ensuring psList(s)
diff --git a/testcases/stringrender/TupleWrapperRender.scala b/testcases/stringrender/TupleWrapperRender.scala
index fcfc87991898e3a9270a3e44fe9767828fa49ef4..6df42174bc4f9e4a7cadec3067ce0df8ae028fd1 100644
--- a/testcases/stringrender/TupleWrapperRender.scala
+++ b/testcases/stringrender/TupleWrapperRender.scala
@@ -14,70 +14,70 @@ import leon.lang.synthesis._
 object TupleWrapperRender {
   case class TupleWrapper(i: Int, j: Int)
 
-  def psStandard(s: TupleWrapper) = (res: String) => (s, res) passes {
+  @inline def psStandard(s: TupleWrapper) = (res: String) => (s, res) passes {
     case TupleWrapper(0, 0) => "TupleWrapper(0, 0)"
     case TupleWrapper(-1, 2) => "TupleWrapper(-1, 2)"
     case TupleWrapper(12, 5) => "TupleWrapper(12, 5)"
   }
   
-  def psUnwrapped(s: TupleWrapper) = (res: String) => (s, res) passes {
+  @inline def psUnwrapped(s: TupleWrapper) = (res: String) => (s, res) passes {
     case TupleWrapper(0, 0) => "0, 0"
     case TupleWrapper(-1, 2) => "-1, 2"
     case TupleWrapper(12, 5) => "12, 5"
   }
   
-  def psNameChangedPrefix(s: TupleWrapper) = (res: String) => (s, res) passes {
+  @inline def psNameChangedPrefix(s: TupleWrapper) = (res: String) => (s, res) passes {
     case TupleWrapper(0, 0) => "x = 0, y = 0"
     case TupleWrapper(-1, 2) => "x = -1, y = 2"
     case TupleWrapper(12, 5) => "x = 12, y = 5"
   }
   
-  def psNameChangedSuffix(s: TupleWrapper) = (res: String) => (s, res) passes {
+  @inline def psNameChangedSuffix(s: TupleWrapper) = (res: String) => (s, res) passes {
     case TupleWrapper(0, 0) => "0.0,0.0"
     case TupleWrapper(-1, 2) => "-1.0,2.0" // Here there should be an ambiguity before this line.
     case TupleWrapper(12, 5) => "12.0,5.0"
   }
   
-  def psDuplicate(s: TupleWrapper) = (res: String) => (s, res) passes {
+  /*@inline def psDuplicate(s: TupleWrapper) = (res: String) => (s, res) passes {
     case TupleWrapper(0, 0) => "d 0,0 0,15 15,15 15,0"
     case TupleWrapper(-1, 2) => "d -1,-2 -1,15 15,15 15,2"
     case TupleWrapper(12, 5) => "d 12,5 12,15 15,15 15,5"
-  }
+  }*/
   
   def repairUnWrapped(s: TupleWrapper): String = {
-    "TupleWrapper(" + s.i + ", " + s.j + ")""
-  } ensuring psUnWrapped(s)
+    "TupleWrapper(" + s.i + ", " + s.j + ")"
+  } ensuring psUnwrapped(s)
   
   def repairNameChangedPrefix(s: TupleWrapper): String = {
-    "TupleWrapper(" + s.i + ", " + s.j + ")""
+    "TupleWrapper(" + s.i + ", " + s.j + ")"
   } ensuring psNameChangedPrefix(s)
   
   def repairNameChangedSuffix(s: TupleWrapper): String = {
-    "TupleWrapper(" + s.i + ", " + s.j + ")""
+    "TupleWrapper(" + s.i + ", " + s.j + ")"
   } ensuring psNameChangedSuffix(s)
   
-  def repairDuplicate(s: TupleWrapper): String = {
-    "TupleWrapper(" + s.i + ", " + s.j + ")""
-  } ensuring psDuplicate(s)
+  /*def repairDuplicate(s: TupleWrapper): String = {
+    "TupleWrapper(" + s.i + ", " + s.j + ")"
+  } ensuring psDuplicate(s)*/
   
   
-  def synthesisStandard(s: TupleWrapper): String = {
+  def synthesizeStandard(s: TupleWrapper): String = {
      ???[String]
   } ensuring psStandard(s)
   
-  def synthesisUnwrapped(s: TupleWrapper): String = {
+  def synthesizeUnwrapped(s: TupleWrapper): String = {
      ???[String]
   } ensuring psUnwrapped(s)
   
-  def synthesisNameChangedPrefix(s: TupleWrapper): String = {
+  def synthesizeNameChangedPrefix(s: TupleWrapper): String = {
      ???[String]
   } ensuring psNameChangedPrefix(s)
   
-  def synthesisNameChangedSuffix(s: TupleWrapper): String = {
+  def synthesizeNameChangedSuffix(s: TupleWrapper): String = {
      ???[String]
   } ensuring psNameChangedSuffix(s)
   
-  def synthesisDuplicate(s: TupleWrapper): String = {
+  /*def synthesizeDuplicate(s: TupleWrapper): String = {
      ???[String]
-  } ensuring psDuplicate(s)
+  } ensuring psDuplicate(s)*/
 }
\ No newline at end of file
diff --git a/testcases/stringrender/TwoArgsWrapperRender.scala b/testcases/stringrender/TwoArgsWrapperRender.scala
index 880023ef8f89cb701e1001961c29795a97301f78..e438affa73ea7af0352e7937cc5afb328f25b9cb 100644
--- a/testcases/stringrender/TwoArgsWrapperRender.scala
+++ b/testcases/stringrender/TwoArgsWrapperRender.scala
@@ -9,72 +9,73 @@ import leon.annotation._
 import leon.collection._
 import leon.collection.ListOps._
 import leon.lang.synthesis._
+import leon.lang._
 
 object TwoArgsWrapperRender {
-  def psStandard(s: Int, t: Int) = (res: String) => ((s, t), res) passes {
+  @inline def psStandard(s: Int, t: Int) = (res: String) => ((s, t), res) passes {
     case (0, 0) => "TupleWrapper(0, 0)"
     case (-1, 2) => "TupleWrapper(-1, 2)"
     case (12, 5) => "TupleWrapper(12, 5)"
   }
   
-  def psUnwrapped(s: Int, t: Int) = (res: String) => ((s, t), res) passes {
+  @inline def psUnwrapped(s: Int, t: Int) = (res: String) => ((s, t), res) passes {
     case (0, 0) => "0, 0"
     case (-1, 2) => "-1, 2"
     case (12, 5) => "12, 5"
   }
   
-  def psNameChangedPrefix(s: Int, t: Int) = (res: String) => ((s, t), res) passes {
+  @inline def psNameChangedPrefix(s: Int, t: Int) = (res: String) => ((s, t), res) passes {
     case (0, 0) => "x = 0, y = 0"
     case (-1, 2) => "x = -1, y = 2"
     case (12, 5) => "x = 12, y = 5"
   }
   
-  def psNameChangedSuffix(s: Int, t: Int) = (res: String) => ((s, t), res) passes {
+  @inline def psNameChangedSuffix(s: Int, t: Int) = (res: String) => ((s, t), res) passes {
     case (0, 0) => "0.0,0.0"
     case (-1, 2) => "-1.0,2.0" // Here there should be an ambiguity before this line.
     case (12, 5) => "12.0,5.0"
   }
   
-  def psDuplicate(s: Int, t: Int) = (res: String) => ((s, t), res) passes {
+  /*def psDuplicate(s: Int, t: Int) = (res: String) => ((s, t), res) passes {
     case (0, 0) => "d 0,0 0,15 15,15 15,0"
     case (-1, 2) => "d -1,-2 -1,15 15,15 15,2"
     case (12, 5) => "d 12,5 12,15 15,15 15,5"
-  }
+  }*/
   
   def repairUnWrapped(s: Int, t: Int): String = {
-    "(" + s + ", " + t + ")""
-  } ensuring psUnWrapped(s)
+    "(" + s + ", " + t + ")"
+  } ensuring psUnwrapped(s, t)
   
   def repairNameChangedPrefix(s: Int, t: Int): String = {
-    "(" + s + ", " + t + ")""
-  } ensuring psNameChangedPrefix(s)
+    "(" + s + ", " + t + ")"
+  } ensuring psNameChangedPrefix(s, t)
   
   def repairNameChangedSuffix(s: Int, t: Int): String = {
-    "(" + s + ", " + t + ")""
-  } ensuring psNameChangedSuffix(s)
+    "(" + s + ", " + t + ")"
+  } ensuring psNameChangedSuffix(s, t)
   
-  def repairDuplicate(s: Int, t: Int): String = {
-    "(" + s + ", " + t + ")""
-  } ensuring psDuplicate(s)
+  /*def repairDuplicate(s: Int, t: Int): String = {
+    "(" + s + ", " + t + ")"
+  } ensuring psDuplicate(s)*/
   
   
-  def synthesisStandard(s: Int, t: Int): String = {
+  def synthesizeStandard(s: Int, t: Int): String = {
      ???[String]
-  } ensuring psStandard(s)
+  } ensuring psStandard(s, t)
   
-  def synthesisUnwrapped(s: Int, t: Int): String = {
+  def synthesizeUnwrapped(s: Int, t: Int): String = {
      ???[String]
-  } ensuring psUnwrapped(s)
+  } ensuring psUnwrapped(s, t)
   
-  def synthesisNameChangedPrefix(s: Int, t: Int): String = {
+  def synthesizeNameChangedPrefix(s: Int, t: Int): String = {
      ???[String]
-  } ensuring psNameChangedPrefix(s)
+  } ensuring psNameChangedPrefix(s, t)
   
-  def synthesisNameChangedSuffix(s: Int, t: Int): String = {
+  def synthesizeNameChangedSuffix(s: Int, t: Int): String = {
      ???[String]
-  } ensuring psNameChangedSuffix(s)
+  } ensuring psNameChangedSuffix(s, t)
   
-  def synthesisDuplicate(s: Int, t: Int): String = {
+  /*def synthesizeDuplicate(s: Int, t: Int): String = {
      ???[String]
-  } ensuring psDuplicate(s)
+  } ensuring psDuplicate(s)*/
 }
\ No newline at end of file
diff --git a/testcases/stringrender/runRepair.sh b/testcases/stringrender/runRepair.sh
index af25c35da8c46582f8bb27e6680cc5e182f01aba..c1b616351dc8cfd326b38358e80e722f3a31f4cf 100644
--- a/testcases/stringrender/runRepair.sh
+++ b/testcases/stringrender/runRepair.sh
@@ -23,17 +23,17 @@ echo "#           Category,                 File,             function, p.S, fuS
 ./leon --repair --timeout=30 --solvers=smt-cvc4 --functions=repairUnwrapped          testcases/stringrender/IntWrapperRender.scala     | tee -a $fullLog
 ./leon --repair --timeout=30 --solvers=smt-cvc4 --functions=repairNameChangedPrefix  testcases/stringrender/IntWrapperRender.scala     | tee -a $fullLog
 ./leon --repair --timeout=30 --solvers=smt-cvc4 --functions=repairNameChangedSuffix  testcases/stringrender/IntWrapperRender.scala     | tee -a $fullLog
-./leon --repair --timeout=30 --solvers=smt-cvc4 --functions=repairDuplicate          testcases/stringrender/IntWrapperRender.scala     | tee -a $fullLog
+# ./leon --repair --timeout=30 --solvers=smt-cvc4 --functions=repairDuplicate          testcases/stringrender/IntWrapperRender.scala     | tee -a $fullLog
 
 ./leon --repair --timeout=30 --solvers=smt-cvc4 --functions=repairUnwrapped          testcases/stringrender/TwoArgsWrapperRender.scala   | tee -a $fullLog
 ./leon --repair --timeout=30 --solvers=smt-cvc4 --functions=repairNameChangedPrefix  testcases/stringrender/TwoArgsWrapperRender.scala   | tee -a $fullLog
 ./leon --repair --timeout=30 --solvers=smt-cvc4 --functions=repairNameChangedSuffix  testcases/stringrender/TwoArgsWrapperRender.scala   | tee -a $fullLog
-./leon --repair --timeout=30 --solvers=smt-cvc4 --functions=repairDuplicate          testcases/stringrender/TwoArgsWrapperRender.scala   | tee -a $fullLog
+# ./leon --repair --timeout=30 --solvers=smt-cvc4 --functions=repairDuplicate          testcases/stringrender/TwoArgsWrapperRender.scala   | tee -a $fullLog
 
 ./leon --repair --timeout=30 --solvers=smt-cvc4 --functions=repairUnwrapped          testcases/stringrender/TupleWrapperRender.scala   | tee -a $fullLog
 ./leon --repair --timeout=30 --solvers=smt-cvc4 --functions=repairNameChangedPrefix  testcases/stringrender/TupleWrapperRender.scala   | tee -a $fullLog
 ./leon --repair --timeout=30 --solvers=smt-cvc4 --functions=repairNameChangedSuffix  testcases/stringrender/TupleWrapperRender.scala   | tee -a $fullLog
-./leon --repair --timeout=30 --solvers=smt-cvc4 --functions=repairDuplicate          testcases/stringrender/TupleWrapperRender.scala   | tee -a $fullLog
+# ./leon --repair --timeout=30 --solvers=smt-cvc4 --functions=repairDuplicate          testcases/stringrender/TupleWrapperRender.scala   | tee -a $fullLog
 
 ./leon --repair --timeout=30 --solvers=smt-cvc4 --functions=render1RemoveCons        testcases/stringrender/ListRender.scala           | tee -a $fullLog
 ./leon --repair --timeout=30 --solvers=smt-cvc4 --functions=render2RemoveNil         testcases/stringrender/ListRender.scala           | tee -a $fullLog