Thanks.
Another question.
This doesn't compile:
>shared char[] s = "shared text".dup;
with error:
>cannot implicitly convert expression ("shared text") of type 
>char[] to shared(char[])
Why do I need to write this?
>shared char[] s = cast(shared)"shared text".dup;
What is the meaning of this casting?