Scala's delayedInit and Scallop SLS 5.1 says "Delayed Initializaton. The initialization code of an object or class (but not a trait) that follows the superclass constructor invocation and the mixin-evaluation of the template’s base classes is passed to a special hook, which is inaccessible from user code. Normally, that hook simply executes the code that is passed to it. But templates inheriting the scala.DelayedInit trait can override the hook by re-implementing the delayedInit method, which is defined as follows:"
def delayedInit(body: => Unit)

The ScallopConf command-line parser extends DelayedInit and using it according to the docs generates the warning Selecting value apples from class Conf, which extends scala.DelayedInit, is likely to yield an uninitialized value.
How should the following simple example be rewritten so the warning is not generated?
import org.rogach.scallop._

class Conf(arguments: Seq[String]) extends ScallopConf(arguments) {
  val help = opt[Boolean](name = "help", short = 'h', descr = "Help me please.")
}

object Gen {
  def main(args: Array[String]) {
    val conf: Conf = new Conf(args)
    if (conf.help()) {
      println(s"""Usage: Gen [--help]""")
      sys.exit(-1)
    }
    println("Do some work here")
  }
}


Making help a lazy val and calling conf.afterInit() before accessing conf.help should clear the compiler warnings.