A package for the DOM - Events
The good

Your code will handle any type of browser, is pretty easy to follow.

The bad

Pub.removeEvent will not work. That's because you define Priv.proto.removeEvent twice, whereas you probably want to define Priv.proto.removeEvent and Priv.removeEvent.

The ugly

You are using doc.createEvent which is deprecated, you should look into event constructors.

Furthermore

Because IE decided to do things differently for many event related things, a lot of people check as you do for the existence of a function and go from there, however your approach could be a little DRYer.

Priv.addEvent = (function () {
    if (win.addEventListener) {
        return function (type, callback) {
            $A.someKey(this, function (val) {
                val.addEventListener(type, callback);
            });
        };
    }
    if (win.attachEvent) {
        return function (type, callback) {
            $A.someKey(this, function (val) {
                val.attachEvent('on' + type, callback);
            });
        };
    }
    return Priv.functionNull;
}());


can be done as 

Priv.addEvent = (function () {
  var addFunction = win.addEventListener ? 'addEventListener' : 'attachEvent',
      prefix      = win.addEventListener ? '' : 'on';

  return function (type, callback) {
    $A.someKey(this, function (val) {
      val[addFunction]( prefix + type, callback);
    });
  };
  return Priv.functionNull;
}());


This approach can be applied to addEvent, removeEvent and perhaps to 'createEvent'.

Finally, as always, you should steer away from someKey, just stick to the standard Array.