Just use `URI.create(val.toString())`?
Also, I think we should forbid null being passed in immediately.