diff --git a/tmp/InputProgramGeneration.scala b/tmp/InputProgramGeneration.scala
index e0b2c535044c9d572bf64dc122ad82d8efe35123..d4d50f875035531ba0f1fcb8c22b01c30cc05163 100644
--- a/tmp/InputProgramGeneration.scala
+++ b/tmp/InputProgramGeneration.scala
@@ -19,11 +19,11 @@ object BSTTest {
   }
   
   /** Properties */
-  val treeContainsValue = forAll[(BST,Int)]( p => contains(p._2,p._1) == content(p._1).contains(p._2))
+  forAll[(BST,Int)]( p => contains(p._2,p._1) == content(p._1).contains(p._2))
   
   /** Program */
   @generator
-  abstract class BST
+  sealed abstract class BST
   case class Node(left: BST, right: BST, v: Int) extends BST
   case class Leaf() extends BST 
 }
diff --git a/tmp/OutputProgramGeneration.scala.scala b/tmp/OutputProgramGeneration.scala.scala
index 6ed4a3d29ce81f238b2bac6e77c2cc419c323f35..90b072d102d30e73a54592dda9c942cbd88a806a 100644
--- a/tmp/OutputProgramGeneration.scala.scala
+++ b/tmp/OutputProgramGeneration.scala.scala
@@ -29,14 +29,15 @@ object BSTTest {
   
   /** Properties */
   // removed
-  //val treeContainsValue = forAll[(BST,Int)]( p => contains(p._2,p._1) == content(p._1).contains(p._2))
+  // forAll[(BST,Int)]( p => contains(p._2,p._1) == content(p._1).contains(p._2))
   
   // injected
   // replaced with ScalaCheck forAll
-  val treeContainsValue = Prop.forAll( (tree:BST,v:Int) => contains(v,tree) == content(tree).contains(v))(b: Boolean => Prop.propBoolean(b), arbBST, Shrink.shrinkAny[BST], Arbitrary.arbInt, Shrink.shrinkInt)
+  Console.Prop.forAll( (tree:BST,v:Int) => contains(v,tree) == content(tree).contains(v))(b: Boolean => Prop.propBoolean(b), arbBST, Shrink.shrinkAny[BST], Arbitrary.arbInt, Shrink.shrinkInt)
   
   /** Program */
-  abstract class BST
+  @generator
+  sealed abstract class BST
   case class Node(left: BST, right: BST, v: Int) extends BST
   case class Leaf() extends BST
   
@@ -47,13 +48,13 @@ object BSTTest {
   // Generators
   def genBST: Gen[BST] = Gen.lzy(Gen.oneOf(genLeaf,genNode))
   
-  val genNode: Gen[Node] = for {
+  def genNode: Gen[Node] = Gen.lzy(for {
     left <- genBST
     right <- genBST
     v <- Arbitrary.arbitrary[Int]
-  } yield Node(left,right,v)
+  } yield Node(left,right,v))
   
-  val genLeaf: Gen[Leaf] = Gen.value(Leaf())
+  def genLeaf: Gen[Leaf] = Gen.lzy(Gen.value(Leaf()))
   
   // Arbitrary
   def arbBST: Arbitrary[BST] = Arbitrary(genBST)