Arraylist передается функциям по ссылке в PowerShell

Сегодня я узнал, что массив, который я передал функции, изменяется, когда я удаляю значение из массива внутри функции. Код ниже подразумевает, что передача происходит по ссылке. С чего бы это? Это дизайн или какая-то ошибка? (Я использую v4 на Win 8.1)

function myfunction {
    param (
        [System.Collections.ArrayList]$local
    )
        "`$local: " + $local.count
        "removing 1 from `$local"
        $local.RemoveAt(0)     
        "`$local:" + $local.count       
}

[System.Collections.ArrayList]$names=(Get-Content c:\temp\names.txt)

"`$names: " + $names.count
 myfunction -local $names      
"`$names: " + $names.count

РЕЗУЛЬТАТ:

$names: 16
$local: 16
removing 1 from $local
$local:15
$names: 15