code: public function bind($abstract, $concrete = null, $shared = false)
      {
          if (is_null($concrete)) {
              $concrete = $abstract;
          }
  
          if (!($concrete instanceof \Closure)) {
              $concrete = $this->turnIntoResolvableClosure($abstract, $concrete);
          }
  
          $this->bindings[$abstract] = compact('concrete', 'shared');
      }
docs: Register binding into container stack.
  
  @param string $abstract The unresolvable class name.
  @param \Closure|string $concrete Closure or class name being bound to the class name.