We may make a private lazy val that  has the optimizedSelf, which is what the optimizer would return.