Str16 :: String16 arena_pointer: *Arena = null thing: Arena no_type := thing arena := Arena( next = null, data = null, len = 1000, cap = 1000, // constant_inside = 10, ) Arena :: struct // arena: Arena next: *Arena data: *int len : int cap : int constant_inside :: 10000 constant_outside :: 10000 get_len :: (s: *Arena): int return s.next.len string16: Str16 String16 :: struct data: *void len : int with_type: Arena = thing pointer := &with_type deref := *pointer