pub fn add(base a: Vector(a), offset b: Vector(b)) -> Vector(a)
pub fn append(a: Vector(a), b: Float) -> Vector(fn() -> a)
pub fn cross(
a: Vector(fn() -> fn() -> fn() -> Nil),
b: Vector(fn() -> fn() -> fn() -> Nil),
) -> Vector(fn() -> fn() -> fn() -> Nil)
pub fn div(base a: Vector(a), offset b: Vector(b)) -> Vector(a)
pub fn invert(vec: Vector(a)) -> Vector(a)
pub fn length(vec: Vector(a)) -> Float
pub fn mul(base a: Vector(a), offset b: Vector(b)) -> Vector(a)
pub fn normalize(a: Vector(a)) -> Vector(a)
pub fn scalar(x x: Float) -> Vector(fn() -> Nil)
pub fn sub(base a: Vector(a), offset b: Vector(b)) -> Vector(a)
pub fn vec2(
x x: Float,
y y: Float,
) -> Vector(fn() -> fn() -> Nil)
pub fn vec3(
x x: Float,
y y: Float,
z z: Float,
) -> Vector(fn() -> fn() -> fn() -> Nil)
pub fn x(vec: Vector(fn() -> a)) -> Float
pub fn y(vec: Vector(fn() -> fn() -> a)) -> Float
pub fn z(vec: Vector(fn() -> fn() -> fn() -> a)) -> Float