On Fri, Jun 7, 2013 at 6:53 PM, Mrzlga <bulletproofchest@gmail.com> wrote:
Timothy,

How do you get everyone to use:
    a.Cast!Signed
    a.Cast!Unsigned
    a.Cast!Const
    a.Cast!Immutable
    a.Cast!Shared

And to stop using:
    cast(const)
    cast(immutable)
    cast(shared)
    cast(inout) ?

And have everyone be consistent about it?

Remove the cast() ones from the language?

not suggesting deprecating cast(), just suggesting there's no need to extend the language as it can be done in library code, advantageously. It's trivially extensible as I wrote it. However, any language extension has to be re-implemented by each compiler implementation. 
 
And what about variations, 'shared const', 'inout shared', etc?

it's trivial to add to my code a.Cast!"shared const" or a.Cast!SharedConst, etc, as well as more complex ones.
 
There are some things that should be available to the language, even when no modules are imported. I think dealing with the basic type system is like that.

Not if the syntax sugar provided by the language is no simple than that provided by library solution. I've argued library solution is more consistent with UFCS (see my code).