pub fn compile(source: &str) -> Result<Vec<u8>, CompileError>
Compile a Rust-subset source string into wasm bytes.
Pipeline: lex -> parse -> typecheck -> codegen.