Slices and Fixed Arrays - fixed arrays [T; N] - slices are just fat pointers - &[T] is also a fat pointer, [T] is a managed slice, ^[T] is an owned slice - [T] is managed by default (just like Function and Dynamic are managed fat pointers by default) - subslicing: a range subscript is a view, not a copy — values[1..4] borrows a window of the backing store - the view carries the receiver's access: a managed receiver gives a managed [T] view, &readonly/&exclusive give same-access borrowed views - .slice() keeps its TypeScript meaning and copies; .toOwned() copies a view into owned storage - values[1..4] = other copies in — lengths must match, elements must be Copy - splitAt through &exclusive yields two disjoint exclusive views, both mutable - a view keeps its backing array alive; owned slices ^[T] move as a whole and never split