pub fn similarity_filter<'a, I, T>(
    typ: &'a T,
    fields: &'a [I]
) -> Box<dyn Fn(&I) -> Filter + 'a>
where T: TypeExt<Id = I>, I: AsRef<str>, T::SpannedId: AsRef<str>,