public static IEnumerable <Point2D> IntersectWithLine(this Circle2D circle, Line2D line) =>
 circle.IntersectWithLine(line.AsBoundaryLine());
 /// <returns>
 /// the point intersection of the two lines, even if the lines are nearly parallel
 /// </returns>
 public static Point2D PointIntersectionWithLineUnstable(this Line2D line1, BoundaryLine2D line2) =>
 line1.AsBoundaryLine().PointIntersectionWithLineUnstable(line2);
 public static Either <Null, Point2D, Segment2D> IntersectWithLine(this Segment2D segment, Line2D line) =>
 segment.IntersectWithLine(line.AsBoundaryLine());