public static function number() : UnionType
    {
        if (!self::$number) {
            self::$number = UnionType::create([self::scalar(IType::INT), self::scalar(IType::FLOAT)]);
        }

        return self::$number;
    }