public func `in`(_ lhs: Expression, _ rhs: Expressions, options: NSComparisonPredicate.Options = .caseInsensitive, modifier: NSComparisonPredicate.Modifier = .any) -> NSPredicate where Expressions.Element: Expression { return NSComparisonPredicate(leftExpression: lhs.cdqiExpression, rightExpression: NSExpression(forAggregate: rhs.map(\.cdqiExpression)), modifier: modifier, type: .in, options: options) } public func ==(lhs: L, rhs: Expressions) -> NSPredicate where L.CDQIComparableType == R.CDQIComparableType, Expressions.Element == R { return `in`(lhs, rhs) } public extension Expression where Self: TypeComparable { func cdqiIn(_ rhs: Expressions, options: NSComparisonPredicate.Options = .caseInsensitive, modifier: NSComparisonPredicate.Modifier = .any) -> NSPredicate where Expressions.Element == E, CDQIComparableType == E.CDQIComparableType { return `in`(self, rhs, options: options, modifier: modifier) } }