proc vec2[T: Number](x: T; y: T): Vec2[T]
-
proc lerp[T: Number](a: T; b: T; t: float): T
-
proc zero(): Vec2[float] {...}{.raises: [], tags: [].}
-
proc `-`[T: Number](self: Vec2[T]): Vec2[T]
-
proc infinity[T: Number](): Vec2[T]
-
proc withX[T: Number](self: Vec2[T]; x: Number): Vec2[T]
-
proc withY[T: Number](self: Vec2[T]; y: Number): Vec2[T]
-
proc lerp[T: Number](self: Vec2[T]; other: Vec2[T]; t: float): Vec2[T]
-
proc add[T: Number](self: Vec2[T]; other: Vec2[T]): Vec2[T]
-
proc addX[T: Number](self: Vec2[T]; other: T): Vec2[T]
-
proc addY[T: Number](self: Vec2[T]; other: T): Vec2[T]
-
proc directionTo[T: Number](self: Vec2[T]; other: Vec2[T]): Vec2[T]
-
proc sub[T: Number](self: Vec2[T]; other: Vec2[T]): Vec2[T]
-
proc angle[T: Number](self: Vec2[T]): T
-
proc normalized[T: Number](self: Vec2[T]): Vec2[T]
-
proc divide[T: Number](self: Vec2[T]; val: Number): Vec2[T]
-
proc divide[T: Number](self: Vec2[T]; other: Vec2[T]): Vec2[T]
-
proc mul[T: Number](self: Vec2[T]; other: T): Vec2[T]
-
proc mul[T: Number](self: Vec2[T]; other: Vec2[T]): Vec2[T]
-
proc mul[T: Number](self: Vec2[T]; otherX: T; otherY: T): Vec2[T]
-
proc rotate[T: Number](self: Vec2[T]; rad: Number): Vec2[T]
-
proc max[T: Number](self: Vec2[T]; other: Vec2[T]): Vec2[T]
-
proc min[T: Number](self: Vec2[T]; other: Vec2[T]): Vec2[T]
-
proc abs[T: Number](self: Vec2[T]): Vec2[T]
-
proc heightVec[T: Number](self: Vec2[T]): Vec2[T]
-
proc widthVec[T: Number](self: Vec2[T]): Vec2
-
proc inflate[T: Number](self: Vec2[T]; thickness: Thickness[T]): Vec2[T]
-
proc deflate[T: Number](self: Vec2[T]; thickness: Thickness[T]): Vec2[T]
-
proc equals[T: Number](self: Vec2[T]; other: Vec2[T]): bool
-
proc nonNegative[T: Number](self: Vec2[T]): Vec2[T]
-
proc constrain[T: Number](self: Vec2[T]; constraint: Vec2[T]): Vec2[T]
-
proc length[T: Number](self: Vec2[T]): T
-
proc distanceTo[T: Number](self: Vec2[T]; other: Vec2[T]): T
-
proc neg[T: Number](self: Vec2[T]): Vec2[T]
-