def METHOD_NAME(f: model.Field):
    # First recurse if we have further type definitions
    if isinstance(f, model.ArrayField):
        self.visit(f.itemtype)
        METHOD_NAME(f.itemtype)
    elif isinstance(f, model.CompositeField):
        for c in f.fields:
            self.visit(c)
            METHOD_NAME(c)
    # Now visit ourselves
    self.visit(f)