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