internal note: In the future we could use a new trait for this:

```D
/** Return Target with qualifiers set to those of Source. */
template CopyQualifier(Source, Target)
{
         static if (is(Source U == shared(const U))) alias CopyQualifier = shared(const Target);
    else static if (is(Source U ==    immutable U )) alias CopyQualifier =    immutable(Target);
    else static if (is(Source U ==       shared U )) alias CopyQualifier =       shared(Target);
    else static if (is(Source U ==        const U )) alias CopyQualifier =        const(Target);
    else                                             alias CopyQualifier =              Target;
}
```

Used via:

```D
alias T = CopyQualifier!(Source, Targets[0]);
```