`#listeners` returns all listeners, both local and global.
freeze the collection returned by `#listeners` (since mutating it will not have the desired effect)
Merge branch 'immutable_collection'