 
 extension RemoteDeletable where Self: DelayedDeletable {
 
+  /// **Mechanica**
+  ///
+  /// Protocol `RemoteDeletable`.
+  ///
+  /// Predicate to filter for objects that are marked for remote deletion.
   public static var notMarkedForDeletionPredicate: NSPredicate {
     return NSCompoundPredicate(andPredicateWithSubpredicates: [notMarkedForLocalDeletionPredicate, notMarkedForRemoteDeletionPredicate])
   }


extension RemoteDeletable where Self: NSManagedObject {

  public var hasChangedForRemoteDeletion: Bool {
    return changedValue(forKey: markedForRemoteDeletionKey) as? Bool == true
  }


extension DelayedDeletable where Self: NSManagedObject {

  /// **Mechanica**
  ///
  /// Protocol `DelayedDeletable`.
  ///
  /// Returns true if `self` has been marked for deletion.
  public var hasChangedForDelayedDeletion: Bool {
    return changedValue(forKey: markedForDeletionKey) as? Date != nil
  }
