diff --git a/src/main/scala/leon/codegen/CodeGeneration.scala b/src/main/scala/leon/codegen/CodeGeneration.scala
index 5d2b7fd419cdd2b92e0bce2e583de881307442fb..36a2a18d11fcb2c5f69d5a708a8185264a4ccc85 100644
--- a/src/main/scala/leon/codegen/CodeGeneration.scala
+++ b/src/main/scala/leon/codegen/CodeGeneration.scala
@@ -591,7 +591,6 @@ trait CodeGeneration {
         }
 
         locally {
-          val argTypes = args.map(arg => typeToJVM(arg.getType))
 
           val apm = cf.addMethod("Ljava/lang/Object;", "apply", "[Ljava/lang/Object;")
 
diff --git a/src/main/scala/leon/codegen/CompilationUnit.scala b/src/main/scala/leon/codegen/CompilationUnit.scala
index 2a9cdce02638d40c844236993d1cd8f20a8b9907..71920325e88979042fd7add19cd4f7b45edcca21 100644
--- a/src/main/scala/leon/codegen/CompilationUnit.scala
+++ b/src/main/scala/leon/codegen/CompilationUnit.scala
@@ -213,7 +213,7 @@ class CompilationUnit(val ctx: LeonContext,
             case Some(cc: CaseClassDef) =>
               CaseClassType(cc, ct.tps)
             case _ =>
-              throw CompilationException("Unable to identify class "+cc.getClass.getName+" to descendent of "+ct)
+              throw CompilationException("Unable to identify class "+cc.getClass.getName+" to descendant of "+ct)
         }
       }
 
diff --git a/src/main/scala/leon/evaluators/RecursiveEvaluator.scala b/src/main/scala/leon/evaluators/RecursiveEvaluator.scala
index 90ea4ace4de5ff0c210596ea7a99e96a02890443..e96aa69b89a76eba0e88debb1d1af3f45c5a43c2 100644
--- a/src/main/scala/leon/evaluators/RecursiveEvaluator.scala
+++ b/src/main/scala/leon/evaluators/RecursiveEvaluator.scala
@@ -211,7 +211,7 @@ abstract class RecursiveEvaluator(ctx: LeonContext, prog: Program, maxSteps: Int
       val rv = e(re)
 
       (lv,rv) match {
-        case (FiniteSet(el1, _),FiniteSet(el2, _)) => BooleanLiteral(el1.toSet == el2.toSet)
+        case (FiniteSet(el1, _),FiniteSet(el2, _)) => BooleanLiteral(el1 == el2)
         case (FiniteMap(el1, _, _),FiniteMap(el2, _, _)) => BooleanLiteral(el1.toSet == el2.toSet)
         case (BooleanLiteral(b1),BooleanLiteral(b2)) => BooleanLiteral(b1 == b2)
         case _ => BooleanLiteral(lv == rv)
@@ -428,7 +428,7 @@ abstract class RecursiveEvaluator(ctx: LeonContext, prog: Program, maxSteps: Int
       case (l,r) => throw EvalError(typeErrorMsg(r, SetType(l.getType)))
     }
     case SubsetOf(s1,s2) => (e(s1), e(s2)) match {
-      case (f@FiniteSet(els1, _),FiniteSet(els2, _)) => BooleanLiteral(els1.toSet.subsetOf(els2.toSet))
+      case (f@FiniteSet(els1, _),FiniteSet(els2, _)) => BooleanLiteral(els1.subsetOf(els2))
       case (le,re) => throw EvalError(typeErrorMsg(le, s1.getType))
     }
     case SetCardinality(s) =>
@@ -440,10 +440,7 @@ abstract class RecursiveEvaluator(ctx: LeonContext, prog: Program, maxSteps: Int
 
     case f @ FiniteSet(els, base) => 
       finiteSet(els.map(e), base)
-    case i @ IntLiteral(_) => i
-    case i @ InfiniteIntegerLiteral(_) => i
-    case b @ BooleanLiteral(_) => b
-    case u @ UnitLiteral() => u
+
     case l @ Lambda(_, _) =>
       val mapping = variablesOf(l).map(id => id -> e(Variable(id))).toMap
       replaceFromIDs(mapping, l)
@@ -506,7 +503,6 @@ abstract class RecursiveEvaluator(ctx: LeonContext, prog: Program, maxSteps: Int
     case gv: GenericValue =>
       gv
 
-  
     case p : Passes => 
       e(p.asConstraint)
 
@@ -574,7 +570,7 @@ abstract class RecursiveEvaluator(ctx: LeonContext, prog: Program, maxSteps: Int
           throw RuntimeError("MatchError: "+rscrut+" did not match any of the cases")
       }
 
-    case l : CharLiteral => l
+    case l : Literal[_] => l
 
     case other =>
       context.reporter.error(other.getPos, "Error: don't know how to handle " + other + " in Evaluator ("+other.getClass+").")