 }
 
 extension Results: NotificationEmitter {
+    public func toAnyCollection() -> AnyRealmCollection<T> {
+        return AnyRealmCollection<ElementType>(self)
+    }
     public typealias ElementType = Element
     public func toArray() -> [Element] {
         return Array(self)

}

extension LinkingObjects: NotificationEmitter {
    public typealias ElementType = Element
    public func toArray() -> [Element] {
        return Array(self)


     - returns: `Observable<(Self, RealmChangeset?)>`
     */
    public static func changesetFrom(_ collection: E, scheduler: ImmediateSchedulerType = CurrentThreadScheduler.instance) -> Observable<(AnyRealmCollection<E.ElementType>, RealmChangeset?)> {
        return Observable.create {observer in
            let token = collection.toAnyCollection().addNotificationBlock {changeset in

                switch changeset {
                    case .initial(let value):
