```
struct A;
#[derive(Debug,Clone)]
pub struct FilteredPages<'a, F> where F: for<'q> FnMut(&'q V) -> bool {
buckets: VecDeque<A>,
my_filter: &'a F,
}
impl<'a, F> FilteredPages<'a, F>
where
F: for<'q> Fn(&'q V) -> bool,
{
pub fn new(my_filter: &'a F) -> Self {
Self {
buckets: VecDeque::<A>::new(),
my_filter: my_filter,,
}
}
}
pub struct Book<'a, F> where F: for<'q> FnMut(&'q A) -> bool {
aaaa: FilteredPages<'a, F>,
}
impl<'a,F> Book<'a,F> where F: for<'q> FnMut(&'q A) -> bool {
pub fn new() -> Book<'a> {
Self {
aaaa: FilteredPages::new(&|_x : &A| {
true
}),
}
}
```

I actually would like to get rid of the generic `F`

within `Book`

such that it stays internal, but how do I explicitly specify the type of F for `aaaa`

?