Yeah there is a work-around, but I am really not interested.
I would like if I could say b=a
and get a new thing that is not just a reference
the weird thing happens when I change it at the top level, then a is unaffected, but when I copy inside a function or something like that a is also affected, if this is intended behavior I am out of that language.