implement NumericRules::square