That code doesn't always think the value is not `WideCString`, just it has both 
"then" and "else" clauses to compile, and it has no appropriate version of 
`convert`, when `value` is `WideCString`. You can derive it by just commenting 
out the line with `convert`, to make the code compile - "not widecstring" will 
be printed. So you need "then" and "else" clauses conditionally compiled; 
`when` does that, this code with `if` replaced with `when` works.

Reply via email to