     }
 }
 
-extension Association where Self: TableRequest {
+// TableRequest conformance
+extension Association {
     public var databaseTableName: String {
         _sqlAssociation.destination.relation.source.tableName
     }
 }
 
-extension Association where Self: AggregatingRequest {
+// AggregatingRequest conformance
+extension Association {
     /// Creates an association grouped according to *expressions promise*.
     public func group(_ expressions: @escaping (Database) throws -> [SQLExpressible]) -> Self {
         mapDestinationRelation { $0.group { try expressions($0).map(\.sqlExpression) } }

    }
}

extension Association where Self: FilteredRequest {
    /// Creates an association with the provided *predicate promise* added to
    /// the eventual set of already applied predicates.
    ///

    }
}

// SelectionRequest conformance
extension Association {
    
    /// Creates an association which selects *selection*.
    ///
