/**
    * Alias a type to a different name.
    *
    * @param  string  $abstract
    * @param  string  $alias
    * @return void
    */
   public function alias($abstract, $alias)
   {
       $this->aliases[$alias] = $this->normalize($abstract);// i know this ,set the alias as a key , abstract function as a value.
   }// a easy function that to set a alias for a different name

   /**
    * Extract the type and alias from a given definition.
    *
    * @param  array  $definition
    * @return array
    */
   protected function extractAlias(array $definition)
   {
       return [key($definition), current($definition)];
   }// function 'key' is get the current key.
// function 'current' is get the current value,
// so that means to get the current array