This doesn't feel right. If it's a string, we should allow any Expression and type check it to a string. If it's a literal, then it should have it's own literal form.