Relax primitives for make homogeneous
Move make homogeneous primitives to natives
Add some type annotations