The tool generates Ada iterators for all these types, allowing you to use a syntax like this:
```
declare
My_Enum : MyEnum_Iterator;
begin
for Each of My_Enum loop
Put_Line (Each'Img);
end loop;
end;
# will print:
# hello
# world
# how_are_you
```
This is a primary feature needed to build up the model checker. It must be possible to iterate on the parameter functions without pre-calculating all possible values in advance. This iteration does not use any memory as the values are computed on the fly (this is similar to Python's iterators, when you use the `yield` keyword).