pub type Point3D<T> = Point3D<T, UnknownUnit>;
struct Point3D<T> { pub x: T, pub y: T, pub z: T, /* private fields */ }
x: T
y: T
z: T