FFI (Foreign Function Interface)
all header files must import the helix core from “include/core.hh”, and all code must start within the helix namespace. Take a look at this C++ example and how to import and call it from helix:
#include "include/core.hh"
namespace helix {    i32 add(i32 a, i32 b) {        return a + b;    }
    string greet(string name) {        return L"Hello, " + name + L"!"; // Note the helix string type in c++ REQUIRES the use of wide strings (L"")    }
    f64 multiply(f64 a, f64 b) {        return a * b;    }}One thing, in the c++ since we have imported the core and are in the helix namespace, we HAVE to use the helix types (i32, string, f64, etc) and helix core std functions (like std::print, etc). The C++ std would still be accessable under libcxx:: namespace if needed.
ffi "c++" import "my_math.hh"; // it does get put in the gobal namespace// you can alias it with `ffi "c++" import "my_math.hh" as my_math;`//     or put the functions in the header itself in a namespace
fn main() -> i32 {    var sum:      i32    = add(5, 10);         // calls the c++ add function    var greeting: string = greet("World");     // calls the c++ greet function    var product:  f64    = multiply(3.5, 2.0); // calls the c++ multiply function
    std::print(greeting); // prints "Hello, World!"    std::print(f"Sum: {sum}, Product: {product}");
    return 0;}