# Shared --- Hold multiple references to the same object ```text %shared ``` # Garbage Collection A tracing mark and sweep garbage collector is used # Mutating ```text x : %shared Array $ (1; 2; 3) ^ x {[y] y `push 4 } `log x // %shared Array[I64] $ (1; 2; 3; 4) ``` # Operators ## ``get` ## ``set` ### Example sharing data between two shared objects ```text x : %shared 1 y : %shared 0 z : ^ x {[x] x } ^ y {[y] y : z } // same as above y `set `get x ```