factory HNum(num val, [String? unit]) { if (val == 0 && unit == null) return ZERO; return HNum._(val.toDouble(), unit); }