private static Maybe<DoubleVector2> IntersectVerticalAndNonVertical(INonVertical first, IVertical second) { return MaybeUtil.Just(new DoubleVector2(second.X, first.Y(second.X))); }
private static Maybe<DoubleVector2> IntersectVertical(IVertical first, IVertical second) { return new Nothing<DoubleVector2>(); }