unit role Red::Attr::Query;

method wrapper($obj, $query) {
    #TODO
    now # FIXME: run the query
}

method wrap-data($filter) {
    my $name = self.name.substr: 2;
    my \attr = self;
    with self.package.^lookup: $name {
        .wrap: method { attr.wrapper: attr, $filter }
    } elsif self.has_accessor {
        self.package.^add_method: $name, method (|) { attr.wrapper: self, $filter }
    }
}