@Override
 protected final Optional<Expression> visitExprNode(ExprNode node) {
   if (allowsBoxing()) {
     Optional<SoyExpression> compileWithNoDetaches = exprCompiler.compileWithNoDetaches(node);
     if (compileWithNoDetaches.isPresent()) {
       return Optional.<Expression>of(compileWithNoDetaches.get().box());
     }
   }
   return Optional.absent();
 }