// Future numerical syntax: not supported by the current scalar interpreter.
// Use hello.aner, scalars.aner, or control_flow.aner for runnable examples.
fn main() -> Unit {
    let x: Vector<Float64> = [1.0, 2.0, 3.0];
    let y: Vector<Float64> = [4.0, 5.0, 6.0];
    print(dot(x, y)); // Expected numeric value: 32.0

    let a: Matrix<Float64> = [[1.0, 2.0], [3.0, 4.0]];
    let b: Matrix<Float64> = [[5.0, 6.0], [7.0, 8.0]];
    print(a @ b); // Expected: [[19.0, 22.0], [43.0, 50.0]]
    print(transpose(a)); // Expected: [[1.0, 3.0], [2.0, 4.0]]
}
