> What I would like to see is a programming language where the runtime language and the comptime language are the same, or nearly the same, and where the comptime language is type safe
I have aproximately 0 knowledge of it, but I think TemplateHaskell should do that.
Nope. Haskell's type system guarantees that code you construct in Template Haskell is well-formed, but the code you construct is only type checked once, at the end. So if you have a function that constructs code, and the code it constructs has a type error in it, you won't find out unless you call the function. Just like Zig.
I have aproximately 0 knowledge of it, but I think TemplateHaskell should do that.