protected static function aggregateDefinitions()
    {
        array_map(function (TypesDefinition $definition) {
            static::$compounds = array_merge(
                static::$compounds,
                $definition->getCompounds()
            );

            static::$scalars = array_merge(
                static::$scalars,
                $definition->getScalars()
            );

            static::$specials = array_merge(
                static::$specials,
                $definition->getSpecial()
            );

            static::$types = array_merge(
                static::$types,
                $definition->getCompounds(),
                $definition->getScalars(),
                $definition->getSpecial()
            );
        }, static::$definitions);
    }