sclass NumberPt is IDoublePt { Number x, y; *() {} *(Point p) { x = p.x; y = p.y; } *(Pt p) { x = p.x; y = p.y; } *(double *x, double *y) {} [stdEq] toString { ret x + ", " + y; } double length() { ret sqrt(sqr(x_dbl())+sqr(y_dbl())); } public double x_double aka x_dbl() { ret x.doubleValue(); } public double y_double aka y_dbl() { ret y.doubleValue(); } }