Independent of what is required by the SQL spec, I think both of these should be Expressions.  This will give us a lot more flexibility and make it easier to integrate with the parser.  You can still get the string value by calling `right.evaluate(EmptyRow).asInstanceOf[String]`.