docs: def find(decl_matcher, decls, recursive=True):
          """
          Returns a list of declarations that match `decl_matcher` defined
          criteria or None
  
          :param decl_matcher: Python callable object, that takes one argument -
              reference to a declaration
          :param decls: the search scope, :class:declaration_t object or
              :class:declaration_t objects list t
          :param recursive: boolean, if True, the method will run `decl_matcher`
              on the internal declarations too
          """
  
          where = []
          if isinstance(decls, list):
              where.extend(decls)
          else:
              where.append(decls)
          if recursive:
              where = make_flatten(where)
          return list(filter(decl_matcher, where))