Really like the mdecl_wrapper to assign properties to the declarations.
mdecl_wrapper could be much more useful though if it returns an mdecl_wrapper of the result to access attribute or nest queries.
included is a patched version of mdecl_wrapper that allows queries to be written like this:
a = mb.classes(lambda b: whatever(b)).mem_funs(return_type='void')
> queries the mem_funs of all classes matched
names = a.names.to_list()
> returns a list of all names (nice for debugging)
Additionally if all calldefs would have an arguments() (or .args() to avoid name conflict) that works similarily to classes() or calldefs()