There is a method Object ScriptLanguage#decode(Object). This is not precise enough, because it does not give the desired destination type in the method signature. So we cannot do the obviously good thing and call ConversionUtils.convert(Object, Type). We should deprecate the old decode signature and add a new one that takes a Type too, then use ConversionUtils by default. This will make output parameter typing a lot more flexible and less broken-seeming.