Origin::Vector3.nearly_equal? v1, v2user code calling
Origin::Util.nearly_equal? f1, f2, rel_tol, abs_tolinternal code isn't too bad I suppose
v1 =~ v2
Origin::Scalar.=~ v1, v2
==on two floats, let alone 2 aggregates of floats, so
==calls out to
=~incase the user didn't use the more explicit approximation method, which would clearly be an error. The problem is,
==must take exactly 1 receiver and 1 argument, so the defaults for
abs_tolmust be used in that case.
==to begin with is because of this...the parser treats all
=suffixed method names as setters, and errors on arity overloading away from that.
=~doesn't mean the usual to Crystal programmers.