 Type-safe publish/subscribe implementation, where you use custom enums as events.
 Use static functions to publish/subscribe on events.
 */
-class Eventer<T: Event> {
+class Eventer<EventType: Event> {
     /**
     Publish event
     
     :param: event Your event
     */
-    class func publish(event: T) {
+    class func publish(event: EventType) {
         publish(event, to:.Immediate)
     }
     

enum Action {
    typealias SimpleAction = () -> Void
    typealias InfoAction = (info: AnyObject?) -> Void
    
    case Simple(SimpleAction)
    case Info(InfoAction)

    
    :param: info Any object you want to pass to actions
    */
    class func publish(event: EventType, info: AnyObject?) {
        publish(event, info: info, to:.Immediate)
    }
    
