MSL does not support value semantics for arrays (sigh), so we need to force constant references and deal with copies if we have a different address space than what we end up guessing.