anchor.diff:   */
   class EventDispatcher {
     
  -  final _map = new Map<String, List>();
  +  final _map = new Map<String, List<Function>>();
     
     /**
      * Unregisters a method from receiving events.
      * Returns whether the [method] was removed or not.
      */
  -  bool unregister(void method(obj)) {
  +  bool unregister(void method(dynamic)) {
       var name = _get_name(method: method);
       return _map[name].remove(method);
     }
  
positive.code:    * Registers a method so that it can start receiving events.
     * Returns false if [method] is already registered, otherwise true.
     */
    bool register(void method(obj)) {
      var name = _get_name(method: method);    
      List methods = _map[name];
      
  
negative.code:     methods.forEach((m) => m(obj));
    }
    
    String _get_name({void method(dynamic), dynamic obj}) {
      if (method != null) {
        var cm = reflect(method);
        return MirrorSystem.getName(cm.function.parameters.first.type.qualifiedName);
  