 //MARK: Saving
 public extension Reactive where Base: Object {
     
+    /**
+     * Reactive save Realm object
+     *
+     * - parameter update: Realm should find existing object using primaryKey() and update it if it exists otherwise create new object
+     * - parameter writeBlock: Closure which allows custom Realm operation instead of default add
+     */
     public func save(update: Bool = true, writeBlock: ((Realm)->Void)? = nil) -> SignalProducer<Base, RealmError>{
         return SignalProducer<Base, RealmError> { sink, d in
             do {

    }
}

public enum Change<T> {
    typealias Element = T
    
    case initial(T)
    case update(T, deletions: [Int], insertions: [Int], modifications: [Int])
}

public extension Reactive where Base: RealmCollection {
    
    public var changes: SignalProducer<Change<Base>, RealmError> {
        var notificationToken: NotificationToken? = nil
        

        }
    }
    
    /// Property which represents the latest value
    public var property: ReactiveSwift.Property<Base> {
        return ReactiveSwift.Property(initial: self.base, then: values.ignoreError().skip(first: 1) )
    }
