# 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 ```