unsafe fn define_function<T: Into<Vec<u8>>>(
        &mut self,
        ret_ty: LLVMTypeRef,
        arg_tys: &mut [LLVMTypeRef],
        name: T,
    ) -> (LLVMValueRef, LLVMBuilderRef, LLVMBasicBlockRef) {
        self.define_function_with_visibility(ret_ty, arg_tys, LLVMLinkage::LLVMPrivateLinkage, name)
    }
Generates code to define a function with the given return type and argument type.

Returns a reference to the function, a builder used to build the function body, and the
entry basic block. This method uses the default private linkage type, meaning functions
generated using this method cannot be passed or called outside of the module.
weld/src/codegen/llvm2/mod.rs