--- id: kw-unsafe name: unsafe category: structure kind: keyword tokens: unsafe sig: unsafe function f() { } / unsafe { ... } tip: Raw memory is allowed inside: bytes(), free, Memory.*, indexing a pointer, calling C. order: 57 --- Ludic's memory is safe unless code says unsafe: raw allocation, freeing, pointer indexing and foreign calls are compile errors elsewhere. An unsafe function or an unsafe { ... } block allows them inside, and only packages and the runtime are trusted to write it; a program's own files need --unsafe. ```ludic # doc-check: skip — needs --unsafe unsafe function raw(n: int) -> pointer { return bytes(n) } ```