code: function bind (type, callback) {
          if (!events.has(type)) {
            throw new Error('Unknown event: ' + type);
          }
  
          if (typeof callback !== 'function') {
            throw new Error('Callback must be a function, instead got: ' + (typeof callback));
          }
  
          var eventsOfType = events.get(type, Immutable.List());
  
          if (!eventsOfType.includes(callback)) {
            events = events.set(type, eventsOfType.push(callback));
          }
  
          return self;
        }
docs: Add event listener