/// A straight line from one point to another. struct Line[TPoint] { field start: TPoint; field end: TPoint; } /// A 2D point. struct Point { field x: Int32; field y: Int32; }