diff --git a/project/Build.scala b/project/Build.scala
index 002494c53806c763a01bbf79fb20525622608b8c..1a03ba0189c16d277c2e722a24c884f6cda5c806 100644
--- a/project/Build.scala
+++ b/project/Build.scala
@@ -80,6 +80,6 @@ object Leon extends Build {
     def project(repo: String, version: String) = RootProject(uri(s"${repo}#${version}"))
 
     lazy val bonsai      = project("git://github.com/colder/bonsai.git",     "0fec9f97f4220fa94b1f3f305f2e8b76a3cd1539")
-    lazy val scalaSmtLib = project("git://github.com/regb/scala-smtlib.git", "24a8b85949c69189f37c5fdfab3265801a084ee8")
+    lazy val scalaSmtLib = project("git://github.com/regb/scala-smtlib.git", "d13c86eb5a60bd9f64ef6724bc4f53fcf466c922")
   }
 }
diff --git a/src/main/scala/leon/Main.scala b/src/main/scala/leon/Main.scala
index 17f431413f77fabeb2ad1ad58fb7b75c06678d16..72e8c3fb9a4e58d60af43a69d1ff1f71729524f6 100644
--- a/src/main/scala/leon/Main.scala
+++ b/src/main/scala/leon/Main.scala
@@ -34,17 +34,17 @@ object Main {
     val name = "main"
     val description = "The main Leon component, handling the top-level options"
 
-    val Termination = LeonFlagOptionDef("termination", "Check program termination",                             false)
-    val Repair      = LeonFlagOptionDef("repair",      "Repair selected functions",                             false)
-    val Synthesis   = LeonFlagOptionDef("synthesis",   "Partial synthesis of choose() constructs",              false)
-    val XLang       = LeonFlagOptionDef("xlang",       "Support for extra program constructs (imperative,...)", false)
-    val Watch       = LeonFlagOptionDef("watch",       "Rerun pipeline when file changes",                      false)
-    val Noop        = LeonFlagOptionDef("noop",        "No operation performed, just output program",           false)
-    val Verify      = LeonFlagOptionDef("verify",      "Verify function contracts",                             true )
-    val Help        = LeonFlagOptionDef("help",        "Show help message",                                     false)
+    val optTermination = LeonFlagOptionDef("termination", "Check program termination",                             false)
+    val optRepair      = LeonFlagOptionDef("repair",      "Repair selected functions",                             false)
+    val optSynthesis   = LeonFlagOptionDef("synthesis",   "Partial synthesis of choose() constructs",              false)
+    val optXLang       = LeonFlagOptionDef("xlang",       "Support for extra program constructs (imperative,...)", false)
+    val optWatch       = LeonFlagOptionDef("watch",       "Rerun pipeline when file changes",                      false)
+    val optNoop        = LeonFlagOptionDef("noop",        "No operation performed, just output program",           false)
+    val optVerify      = LeonFlagOptionDef("verify",      "Verify function contracts",                             true )
+    val optHelp        = LeonFlagOptionDef("help",        "Show help message",                                     false)
 
     override val definedOptions: Set[LeonOptionDef[Any]] =
-      Set(Termination, Repair, Synthesis, XLang, Watch, Noop, Help, Verify)
+      Set(optTermination, optRepair, optSynthesis, optXLang, optWatch, optNoop, optHelp, optVerify)
 
   }
 
@@ -94,7 +94,7 @@ object Main {
 
     val reporter = new DefaultReporter(
       leonOptions.collectFirst {
-        case LeonOption(SharedOptions.Debug, sections) => sections.asInstanceOf[Set[DebugSection]]
+        case LeonOption(SharedOptions.optDebug, sections) => sections.asInstanceOf[Set[DebugSection]]
       }.getOrElse(Set[DebugSection]())
     )
 
@@ -124,13 +124,13 @@ object Main {
     import repair.RepairPhase
     import MainComponent._
 
-    val helpF        = ctx.findOptionOrDefault(Help)
-    val noopF        = ctx.findOptionOrDefault(Noop)
-    val synthesisF   = ctx.findOptionOrDefault(Synthesis)
-    val xlangF       = ctx.findOptionOrDefault(XLang)
-    val repairF      = ctx.findOptionOrDefault(Repair)
-    val terminationF = ctx.findOptionOrDefault(Termination)
-    val verifyF      = ctx.findOptionOrDefault(Verify)
+    val helpF        = ctx.findOptionOrDefault(optHelp)
+    val noopF        = ctx.findOptionOrDefault(optNoop)
+    val synthesisF   = ctx.findOptionOrDefault(optSynthesis)
+    val xlangF       = ctx.findOptionOrDefault(optXLang)
+    val repairF      = ctx.findOptionOrDefault(optRepair)
+    val terminationF = ctx.findOptionOrDefault(optTermination)
+    val verifyF      = ctx.findOptionOrDefault(optVerify)
 
     if (helpF) {
       displayHelp(ctx.reporter, error = false)
@@ -186,7 +186,7 @@ object Main {
 
     ctx.interruptManager.registerSignalHandler()
 
-    val doWatch = ctx.findOptionOrDefault(MainComponent.Watch)
+    val doWatch = ctx.findOptionOrDefault(MainComponent.optWatch)
 
     if (doWatch) {
       val watcher = new FilesWatcher(ctx, ctx.files)
diff --git a/src/main/scala/leon/Pipeline.scala b/src/main/scala/leon/Pipeline.scala
index 0838771245f5d279f51b7b5e658225ac88d8da17..e4f93fcfa25809c8d373a54abe6f442b6171ec0f 100644
--- a/src/main/scala/leon/Pipeline.scala
+++ b/src/main/scala/leon/Pipeline.scala
@@ -8,7 +8,7 @@ abstract class Pipeline[-F, +T] {
   def andThen[G](thenn: Pipeline[T, G]): Pipeline[F, G] = new Pipeline[F,G] {
     def run(ctx : LeonContext)(v : F) : G = {
       val s = self.run(ctx)(v)
-      if(ctx.findOptionOrDefault(SharedOptions.StrictPhases)) ctx.reporter.terminateIfError()
+      if(ctx.findOptionOrDefault(SharedOptions.optStrictPhases)) ctx.reporter.terminateIfError()
       thenn.run(ctx)(s)
     }
   }
diff --git a/src/main/scala/leon/SharedOptions.scala b/src/main/scala/leon/SharedOptions.scala
index a5e7e66350ab351003db479bc19214ce9dc02e8a..4541fc0fc21efd28f281a8d3bf9d2da775eb0628 100644
--- a/src/main/scala/leon/SharedOptions.scala
+++ b/src/main/scala/leon/SharedOptions.scala
@@ -10,9 +10,9 @@ object SharedOptions extends LeonComponent {
   val name = "sharedOptions"
   val description = "Options shared by multiple components of Leon"
 
-  val StrictPhases = LeonFlagOptionDef("strict", "Terminate after each phase if there is an error", true)
+  val optStrictPhases = LeonFlagOptionDef("strict", "Terminate after each phase if there is an error", true)
 
-  case object FunctionsOptionDef extends LeonOptionDef[Seq[String]] {
+  val optFunctions = new LeonOptionDef[Seq[String]] {
     val name = "functions"
     val description = "Only consider functions f1, f2, ..."
     val default = Seq[String]()
@@ -20,7 +20,7 @@ object SharedOptions extends LeonComponent {
     val usageRhs = "f1,f2,..."
   }
 
-  case object SelectedSolvers extends LeonOptionDef[Set[String]] {
+  val optSelectedSolvers = new LeonOptionDef[Set[String]] {
     val name = "solvers"
     val description = "Use solvers s1, s2,...\n" + solvers.SolverFactory.availableSolversPretty
     val default = Set("fairz3")
@@ -28,7 +28,7 @@ object SharedOptions extends LeonComponent {
     val usageRhs = "s1,s2,..."
   }
 
-  case object Debug extends LeonOptionDef[Set[DebugSection]] {
+  val optDebug = new LeonOptionDef[Set[DebugSection]] {
     import OptionParsers._
     val name = "debug"
     val description = "Enable detailed messages per component"
@@ -51,7 +51,13 @@ object SharedOptions extends LeonComponent {
     val parser: String => Set[DebugSection] = setParser[Set[DebugSection]](debugParser)(_).flatten
   }
 
-  val Timeout = LeonLongOptionDef("timeout", "Set a timeout for each verification/repair (in sec.)", 0L, "t")
+  val optTimeout = LeonLongOptionDef("timeout", "Set a timeout for each verification/repair (in sec.)", 0L, "t")
 
-  override val definedOptions: Set[LeonOptionDef[Any]] = Set(StrictPhases, FunctionsOptionDef, SelectedSolvers, Debug, Timeout)
+  override val definedOptions: Set[LeonOptionDef[Any]] = Set(
+    optStrictPhases,
+    optFunctions,
+    optSelectedSolvers,
+    optDebug,
+    optTimeout
+  )
 }
diff --git a/src/main/scala/leon/frontends/scalac/CodeExtraction.scala b/src/main/scala/leon/frontends/scalac/CodeExtraction.scala
index 4d2ab0eeb86f177da3037e5da2eac0ef9c42ea68..e8771c17a00d6a83daa96776fdceebd13b910e53 100644
--- a/src/main/scala/leon/frontends/scalac/CodeExtraction.scala
+++ b/src/main/scala/leon/frontends/scalac/CodeExtraction.scala
@@ -87,7 +87,7 @@ trait CodeExtraction extends ASTExtractors {
   /** An exception thrown when non-purescala compatible code is encountered. */
   sealed class ImpureCodeEncounteredException(pos: Position, msg: String, ot: Option[Tree]) extends Exception(msg) {
     def emit() {
-      val debugInfo = if (ctx.findOptionOrDefault(SharedOptions.Debug) contains utils.DebugSectionTrees) {
+      val debugInfo = if (ctx.findOptionOrDefault(SharedOptions.optDebug) contains utils.DebugSectionTrees) {
         ot.map { t => 
           val strWr = new java.io.StringWriter()
           new global.TreePrinter(new java.io.PrintWriter(strWr)).printTree(t)
@@ -97,7 +97,7 @@ trait CodeExtraction extends ASTExtractors {
         ""
       }
 
-      if (ctx.findOptionOrDefault(ExtractionPhase.StrictCompilation)) {
+      if (ctx.findOptionOrDefault(ExtractionPhase.optStrictCompilation)) {
         reporter.error(pos, msg + debugInfo)
       } else {
         reporter.warning(pos, msg + debugInfo)
@@ -919,7 +919,7 @@ trait CodeExtraction extends ASTExtractors {
         if (!dctx.isExtern) {
           e.emit()
           //val pos = if (body0.pos == NoPosition) NoPosition else leonPosToScalaPos(body0.pos.source, funDef.getPos)
-          if (ctx.findOptionOrDefault(ExtractionPhase.StrictCompilation)) {
+          if (ctx.findOptionOrDefault(ExtractionPhase.optStrictCompilation)) {
             reporter.error(funDef.getPos, "Function "+funDef.id.name+" could not be extracted. (Forgot @extern ?)")
           } else {
             reporter.warning(funDef.getPos, "Function "+funDef.id.name+" is not fully unavailable to Leon.")
diff --git a/src/main/scala/leon/frontends/scalac/ExtractionPhase.scala b/src/main/scala/leon/frontends/scalac/ExtractionPhase.scala
index c0ba4641e7657b75150e350331e8bf24c7a1023c..c4131034a5c215890de58a4042f9dff945f969ec 100644
--- a/src/main/scala/leon/frontends/scalac/ExtractionPhase.scala
+++ b/src/main/scala/leon/frontends/scalac/ExtractionPhase.scala
@@ -16,9 +16,9 @@ object ExtractionPhase extends LeonPhase[List[String], Program] {
   val name = "Scalac Extraction"
   val description = "Extraction of trees from the Scala Compiler"
 
-  val StrictCompilation = LeonFlagOptionDef("strictCompilation", "Exit Leon after an error in compilation", true)
+  val optStrictCompilation = LeonFlagOptionDef("strictCompilation", "Exit Leon after an error in compilation", true)
 
-  override val definedOptions: Set[LeonOptionDef[Any]] = Set(StrictCompilation)
+  override val definedOptions: Set[LeonOptionDef[Any]] = Set(optStrictCompilation)
 
   implicit val debug = DebugSectionTrees
 
diff --git a/src/main/scala/leon/purescala/PrinterOptions.scala b/src/main/scala/leon/purescala/PrinterOptions.scala
index 3c1d67d745b6d48e4879c4b99d6f96d97d5c11bb..0a9cb6d771f78cf1f4bdc1921972caf1164069ae 100644
--- a/src/main/scala/leon/purescala/PrinterOptions.scala
+++ b/src/main/scala/leon/purescala/PrinterOptions.scala
@@ -14,8 +14,8 @@ case class PrinterOptions (
 
 object PrinterOptions {
   def fromContext(ctx: LeonContext): PrinterOptions = {
-    val debugTrees     = ctx.findOptionOrDefault(SharedOptions.Debug) contains DebugSectionTrees
-    val debugPositions = ctx.findOptionOrDefault(SharedOptions.Debug) contains DebugSectionPositions
+    val debugTrees     = ctx.findOptionOrDefault(SharedOptions.optDebug) contains DebugSectionTrees
+    val debugPositions = ctx.findOptionOrDefault(SharedOptions.optDebug) contains DebugSectionPositions
 
     PrinterOptions(
       baseIndent     = 0,
diff --git a/src/main/scala/leon/repair/RepairPhase.scala b/src/main/scala/leon/repair/RepairPhase.scala
index 0b4c0d4c622ec69aca9b314b43a9149180b78cf2..c79002a2089cbea3f258df179d1a1bd094f87a62 100644
--- a/src/main/scala/leon/repair/RepairPhase.scala
+++ b/src/main/scala/leon/repair/RepairPhase.scala
@@ -13,8 +13,8 @@ object RepairPhase extends LeonPhase[Program, Program] {
   implicit val debugSection = utils.DebugSectionRepair
 
   def run(ctx: LeonContext)(program: Program): Program = {
-    val repairFuns: Option[Seq[String]] = ctx.findOption(SharedOptions.FunctionsOptionDef)
-    val verifTimeoutMs: Option[Long] = ctx.findOption(SharedOptions.Timeout) map { _ * 1000 }
+    val repairFuns: Option[Seq[String]] = ctx.findOption(SharedOptions.optFunctions)
+    val verifTimeoutMs: Option[Long] = ctx.findOption(SharedOptions.optTimeout) map { _ * 1000 }
 
     val reporter = ctx.reporter
 
diff --git a/src/main/scala/leon/solvers/SolverFactory.scala b/src/main/scala/leon/solvers/SolverFactory.scala
index 21a56c5b40f31119598488a8fc4df9c4bc04ce31..06a7fb4c4068722cac573395895cd104c9758e05 100644
--- a/src/main/scala/leon/solvers/SolverFactory.scala
+++ b/src/main/scala/leon/solvers/SolverFactory.scala
@@ -36,7 +36,7 @@ object SolverFactory {
     }.mkString("")
 
   def getFromSettings(ctx: LeonContext, program: Program): SolverFactory[TimeoutSolver] = {
-    getFromName(ctx, program)(ctx.findOptionOrDefault(SharedOptions.SelectedSolvers).toSeq : _*)
+    getFromName(ctx, program)(ctx.findOptionOrDefault(SharedOptions.optSelectedSolvers).toSeq : _*)
   }
 
   def getFromName(ctx: LeonContext, program: Program)(names: String*): SolverFactory[TimeoutSolver] = {
diff --git a/src/main/scala/leon/solvers/combinators/UnrollingSolver.scala b/src/main/scala/leon/solvers/combinators/UnrollingSolver.scala
index 3aea7b2a8fb063d5ab9181f4b4f095e4ca2b9da6..1946d225dc02cc8dc95f2cd19413692020141730 100644
--- a/src/main/scala/leon/solvers/combinators/UnrollingSolver.scala
+++ b/src/main/scala/leon/solvers/combinators/UnrollingSolver.scala
@@ -10,15 +10,15 @@ import purescala.Constructors._
 import purescala.Expressions._
 import purescala.ExprOps._
 
-import z3.FairZ3Component.{FeelingLucky, UseCodeGen}
+import z3.FairZ3Component.{optFeelingLucky, optUseCodeGen}
 import templates._
 import utils.Interruptible
 import evaluators._
 
 class UnrollingSolver(val context: LeonContext, program: Program, underlying: IncrementalSolver with Interruptible) extends Solver with Interruptible {
 
-  val feelingLucky  = context.findOptionOrDefault(FeelingLucky)
-  val useCodeGen    = context.findOptionOrDefault(UseCodeGen)
+  val feelingLucky  = context.findOptionOrDefault(optFeelingLucky)
+  val useCodeGen    = context.findOptionOrDefault(optUseCodeGen)
 
   private val evaluator : Evaluator = {
     if(useCodeGen) {
diff --git a/src/main/scala/leon/solvers/smtlib/SMTLIBCVC4Target.scala b/src/main/scala/leon/solvers/smtlib/SMTLIBCVC4Target.scala
index f97c59b525fae130ab1e4254af33bbc0c95f3e61..43df5a32c0ac3e8d0839220fe69aa163396853e2 100644
--- a/src/main/scala/leon/solvers/smtlib/SMTLIBCVC4Target.scala
+++ b/src/main/scala/leon/solvers/smtlib/SMTLIBCVC4Target.scala
@@ -23,7 +23,7 @@ trait SMTLIBCVC4Target extends SMTLIBTarget {
   def targetName = "cvc4"
 
   def userDefinedOps(ctx: LeonContext) = {
-    ctx.findOptionOrDefault(SMTLIBCVC4Component.CVC4Options)
+    ctx.findOptionOrDefault(SMTLIBCVC4Component.optCVC4Options)
   }
 
   def interpreterOps(ctx: LeonContext) = {
@@ -187,7 +187,7 @@ object SMTLIBCVC4Component extends LeonComponent {
 
   val description = "Solver invoked when --solvers=smt-cvc4"
 
-  case object CVC4Options extends LeonOptionDef[Set[String]] {
+  val optCVC4Options = new LeonOptionDef[Set[String]] {
     val name = "solver:cvc4"
     val description = "Pass extra arguments to CVC4"
     val default = Set("")
@@ -195,5 +195,5 @@ object SMTLIBCVC4Component extends LeonComponent {
     val usageRhs = "<cvc4-opt>"
   }
 
-  override val definedOptions : Set[LeonOptionDef[Any]] = Set(CVC4Options)
+  override val definedOptions : Set[LeonOptionDef[Any]] = Set(optCVC4Options)
 }
diff --git a/src/main/scala/leon/solvers/z3/FairZ3Component.scala b/src/main/scala/leon/solvers/z3/FairZ3Component.scala
index 5fc6018e7afeec93123e6794a09c90901a6dacb7..add51eb5fd1d1cbbc1cf6faf52fc957175b5a102 100644
--- a/src/main/scala/leon/solvers/z3/FairZ3Component.scala
+++ b/src/main/scala/leon/solvers/z3/FairZ3Component.scala
@@ -7,14 +7,14 @@ trait FairZ3Component extends LeonComponent {
   val name = "Z3-f"
   val description = "Fair Z3 Solver"
 
-  val EvalGround    = LeonFlagOptionDef("evalground",  "Use evaluator on functions applied to ground arguments",  false)
-  val CheckModels   = LeonFlagOptionDef("checkmodels", "Double-check counter-examples with evaluator",            false)
-  val FeelingLucky  = LeonFlagOptionDef("feelinglucky","Use evaluator to find counter-examples early",            false)
-  val UseCodeGen    = LeonFlagOptionDef("codegen",     "Use compiled evaluator instead of interpreter",           false)
-  val UnrollCores   = LeonFlagOptionDef("unrollcores", "Use unsat-cores to drive unrolling while remaining fair", false)
+  val optEvalGround    = LeonFlagOptionDef("evalground",  "Use evaluator on functions applied to ground arguments",  false)
+  val optCheckModels   = LeonFlagOptionDef("checkmodels", "Double-check counter-examples with evaluator",            false)
+  val optFeelingLucky  = LeonFlagOptionDef("feelinglucky","Use evaluator to find counter-examples early",            false)
+  val optUseCodeGen    = LeonFlagOptionDef("codegen",     "Use compiled evaluator instead of interpreter",           false)
+  val optUnrollCores   = LeonFlagOptionDef("unrollcores", "Use unsat-cores to drive unrolling while remaining fair", false)
 
   override val definedOptions: Set[LeonOptionDef[Any]] =
-    Set(EvalGround, CheckModels, FeelingLucky, UseCodeGen, UnrollCores)
+    Set(optEvalGround, optCheckModels, optFeelingLucky, optUseCodeGen, optUnrollCores)
 }
 
 object FairZ3Component extends FairZ3Component
diff --git a/src/main/scala/leon/solvers/z3/FairZ3Solver.scala b/src/main/scala/leon/solvers/z3/FairZ3Solver.scala
index 99c749ef88ea8108fd2dae24fc458fdba4f2923c..b13345ae42bb1abc24180b12514d542f557452ac 100644
--- a/src/main/scala/leon/solvers/z3/FairZ3Solver.scala
+++ b/src/main/scala/leon/solvers/z3/FairZ3Solver.scala
@@ -25,11 +25,11 @@ class FairZ3Solver(val context : LeonContext, val program: Program)
 
   enclosing =>
 
-  val feelingLucky      = context.findOptionOrDefault(FeelingLucky)
-  val checkModels       = context.findOptionOrDefault(CheckModels)
-  val useCodeGen        = context.findOptionOrDefault(UseCodeGen)
-  val evalGroundApps    = context.findOptionOrDefault(EvalGround)
-  val unrollUnsatCores  = context.findOptionOrDefault(UnrollCores)
+  val feelingLucky      = context.findOptionOrDefault(optFeelingLucky)
+  val checkModels       = context.findOptionOrDefault(optCheckModels)
+  val useCodeGen        = context.findOptionOrDefault(optUseCodeGen)
+  val evalGroundApps    = context.findOptionOrDefault(optEvalGround)
+  val unrollUnsatCores  = context.findOptionOrDefault(optUnrollCores)
 
   private val evaluator: Evaluator =
     if(useCodeGen) {
diff --git a/src/main/scala/leon/synthesis/SynthesisPhase.scala b/src/main/scala/leon/synthesis/SynthesisPhase.scala
index 7a16afed9ad1ac260e8b1c402dc33603cc6f4934..eacb991de1f68f6114e9757fb8451b45dd86b8f4 100644
--- a/src/main/scala/leon/synthesis/SynthesisPhase.scala
+++ b/src/main/scala/leon/synthesis/SynthesisPhase.scala
@@ -15,31 +15,31 @@ object SynthesisPhase extends LeonPhase[Program, Program] {
   val name        = "Synthesis"
   val description = "Partial synthesis of \"choose\" constructs"
 
-  val Manual      = LeonStringOptionDef("manual", "Manual search", default = "", "cmd")
-  val CostModel   = LeonStringOptionDef("costmodel", "Use a specific cost model for this search", "FIXME", "cm")
-  val DerivTrees  = LeonFlagOptionDef( "derivtrees", "Generate derivation trees", false)
+  val optManual      = LeonStringOptionDef("manual", "Manual search", default = "", "cmd")
+  val optCostModel   = LeonStringOptionDef("costmodel", "Use a specific cost model for this search", "FIXME", "cm")
+  val optDerivTrees  = LeonFlagOptionDef( "derivtrees", "Generate derivation trees", false)
 
   // CEGIS options
-  val CEGISShrink     = LeonFlagOptionDef( "cegis:shrink",     "Shrink non-det programs when tests pruning works well",  true)
-  val CEGISOptTimeout = LeonFlagOptionDef( "cegis:opttimeout", "Consider a time-out of CE-search as untrusted solution", true)
-  val CEGISVanuatoo   = LeonFlagOptionDef( "cegis:vanuatoo",   "Generate inputs using new korat-style generator",       false)
+  val optCEGISShrink     = LeonFlagOptionDef( "cegis:shrink",     "Shrink non-det programs when tests pruning works well",  true)
+  val optCEGISOptTimeout = LeonFlagOptionDef( "cegis:opttimeout", "Consider a time-out of CE-search as untrusted solution", true)
+  val optCEGISVanuatoo   = LeonFlagOptionDef( "cegis:vanuatoo",   "Generate inputs using new korat-style generator",       false)
 
   override val definedOptions : Set[LeonOptionDef[Any]] =
-    Set(Manual, CostModel, DerivTrees, CEGISShrink, CEGISOptTimeout, CEGISVanuatoo)
+    Set(optManual, optCostModel, optDerivTrees, optCEGISShrink, optCEGISOptTimeout, optCEGISVanuatoo)
 
   def processOptions(ctx: LeonContext): SynthesisSettings = {
-    val ms = ctx.findOption(Manual)
+    val ms = ctx.findOption(optManual)
     SynthesisSettings(
       manualSearch = ms,
-      functions = ctx.findOption(SharedOptions.FunctionsOptionDef) map { _.toSet },
-      timeoutMs = ctx.findOption(SharedOptions.Timeout) map { _ * 1000 },
-      generateDerivationTrees = ctx.findOptionOrDefault(DerivTrees),
-      cegisUseOptTimeout = ctx.findOption(CEGISOptTimeout),
-      cegisUseShrink = ctx.findOption(CEGISShrink),
-      cegisUseVanuatoo = ctx.findOption(CEGISVanuatoo),
+      functions = ctx.findOption(SharedOptions.optFunctions) map { _.toSet },
+      timeoutMs = ctx.findOption(SharedOptions.optTimeout) map { _ * 1000 },
+      generateDerivationTrees = ctx.findOptionOrDefault(optDerivTrees),
+      cegisUseOptTimeout = ctx.findOption(optCEGISOptTimeout),
+      cegisUseShrink = ctx.findOption(optCEGISShrink),
+      cegisUseVanuatoo = ctx.findOption(optCEGISVanuatoo),
       rules = Rules.all ++ (ms map { _ => rules.AsChoose}),
       costModel = {
-        ctx.findOption(CostModel) match {
+        ctx.findOption(optCostModel) match {
           case None => CostModels.default
           case Some(name) => CostModels.all.find(_.name.toLowerCase == name.toLowerCase) match {
             case Some(model) => model
diff --git a/src/main/scala/leon/utils/FileOutputPhase.scala b/src/main/scala/leon/utils/FileOutputPhase.scala
index 351e0882a6a26f09a6895f52ba4c5f1b24db8f87..be92b7086b74357e7ce03b880a03f6d7cb6f812b 100644
--- a/src/main/scala/leon/utils/FileOutputPhase.scala
+++ b/src/main/scala/leon/utils/FileOutputPhase.scala
@@ -11,7 +11,7 @@ object FileOutputPhase extends UnitPhase[Program] {
   val name = "File output"
   val description = "Output parsed/generated program to the specified directory (default: leon.out)"
 
-  val OutputDirectory = new LeonOptionDef[String] {
+  val optOutputDirectory = new LeonOptionDef[String] {
     val name = "o"
     val description = "Output directory"
     val default = "leon.out"
@@ -19,11 +19,11 @@ object FileOutputPhase extends UnitPhase[Program] {
     val parser = (x: String) => x
   }
 
-  override val definedOptions: Set[LeonOptionDef[Any]] = Set(OutputDirectory)
+  override val definedOptions: Set[LeonOptionDef[Any]] = Set(optOutputDirectory)
 
   def apply(ctx:LeonContext, p : Program) {
     // Get the output file name from command line, or use default
-    val outputFolder = ctx.findOptionOrDefault(OutputDirectory)
+    val outputFolder = ctx.findOptionOrDefault(optOutputDirectory)
     try {
       new File(outputFolder).mkdir()
     } catch {
diff --git a/src/main/scala/leon/verification/AnalysisPhase.scala b/src/main/scala/leon/verification/AnalysisPhase.scala
index 239637f59ac820a6a7020341355dcacca59f2f69..97def89818d2fa54b3ca0e1a3e132f60bb4210b2 100644
--- a/src/main/scala/leon/verification/AnalysisPhase.scala
+++ b/src/main/scala/leon/verification/AnalysisPhase.scala
@@ -19,8 +19,8 @@ object AnalysisPhase extends LeonPhase[Program,VerificationReport] {
   implicit val debugSection = utils.DebugSectionVerification
 
   def run(ctx: LeonContext)(program: Program): VerificationReport = {
-    val filterFuns: Option[Seq[String]] = ctx.findOption(SharedOptions.FunctionsOptionDef)
-    val timeout:    Option[Long]        = ctx.findOption(SharedOptions.Timeout)
+    val filterFuns: Option[Seq[String]] = ctx.findOption(SharedOptions.optFunctions)
+    val timeout:    Option[Long]        = ctx.findOption(SharedOptions.optTimeout)
 
     val reporter = ctx.reporter
 
diff --git a/src/main/scala/leon/xlang/XLangAnalysisPhase.scala b/src/main/scala/leon/xlang/XLangAnalysisPhase.scala
index 15e97fcee8946c39e7a7eb46f04e92a073ac7b63..94e94a8580f4540a6efc06452b2e0e13fea34209 100644
--- a/src/main/scala/leon/xlang/XLangAnalysisPhase.scala
+++ b/src/main/scala/leon/xlang/XLangAnalysisPhase.scala
@@ -38,7 +38,7 @@ object XLangAnalysisPhase extends LeonPhase[Program, VerificationReport] {
 
 
     val newOptions = ctx.options map {
-      case LeonOption(SharedOptions.FunctionsOptionDef, fs) => {
+      case LeonOption(SharedOptions.optFunctions, fs) => {
         var freshToAnalyse: Set[String] = Set()
         fs.asInstanceOf[Seq[String]].foreach((toAnalyse: String) => {
           pgm.definedFunctions.find(_.id.name == toAnalyse) match {
@@ -51,7 +51,7 @@ object XLangAnalysisPhase extends LeonPhase[Program, VerificationReport] {
           }
         })
 
-        LeonOption(SharedOptions.FunctionsOptionDef)(freshToAnalyse.toList)
+        LeonOption(SharedOptions.optFunctions)(freshToAnalyse.toList)
       }
       case opt => opt
     }
diff --git a/src/test/scala/leon/test/repair/RepairSuite.scala b/src/test/scala/leon/test/repair/RepairSuite.scala
index 797f13abe1027088e28c67731de8daa24384f728..9be4ca160b9df2541a0f61c436a0003b53258e01 100644
--- a/src/test/scala/leon/test/repair/RepairSuite.scala
+++ b/src/test/scala/leon/test/repair/RepairSuite.scala
@@ -30,7 +30,7 @@ class RepairSuite extends LeonTestSuite {
     val ctx = LeonContext(
       reporter = reporter,
       interruptManager = new InterruptManager(reporter),
-      options = Seq(LeonOption(SharedOptions.FunctionsOptionDef)(Seq(fileToFun(name))))
+      options = Seq(LeonOption(SharedOptions.optFunctions)(Seq(fileToFun(name))))
     )
 
     test(name) {