It doesn't mutate l exactly, it makes a new list slightly different from the original one and assigns it to l.
That means if someone has a reference to the original l, they do not see the change (because l is immutable. Both of them).
That means if someone has a reference to the original l, they do not see the change (because l is immutable. Both of them).