Module
sysl.raw
The raw tier’s reinterpreting forms: ptr_cast, str_cast and str_alias.
import sysl.raw
Each one takes a value the type system has checked and hands it back as something it has not: an
address read as a pointer to some type, bytes taken as a string with nothing checked, a string laid
over storage it did not allocate. The compiler answers all three itself – ptr_cast takes its
target from the position its value fills, which no function signature can say – so nothing here
is a declaration. What the module gives them is a home: a file names the ones it uses, the way
it names anything else it did not declare, and a reader finds every reinterpretation in a program
by its imports.
import sysl.raw.{ptr_cast, str_cast}
A file that declares a ptr_cast of its own calls that one, imported or not. The forms are
specified in reference/memory.md (ptr_cast) and reference/strings.md (str_cast,
str_alias).