# Ownership --- # Copying ## Assignment # Moving ## Assignment is not allowed for movable types that are not shared ## Shared Types ## To And From Functions # Passing ## References References are automatically taken if the function signature specifies ref ```text inc_push_to_ref : ([Ref.x; y] x `push y + 1 ) int_array : Array[I64] $ () float_array : Array[F64] $ () @ 0 .. 2 {[x] inc_push_to_ref `sync (int_array, x) inc_push_to_ref `sync (float_array, F64 $ x) } `log int_array // Array[I64] $ (1; 2; 3) `log float_array // Array[F64] $ (1.0; 2.0; 3.0) ``` # Locking Prevent access to a container it's contents are modified ## References