import leaf.reflection.comptime add :: fn(a: u32, b: u32) u32 { a + b } Vector :: fn(T: type, count: usize) type { NAMES :: ["x", "y", "z", "w"] ty := TypeBuilder.struct() for i in 0..count { ty.push(Field { name: NAMES[i], type: T, flags: FieldFlags.Public }) } ty.build() }