All iterable types in Raku compose the codice_45 role, codice_36 role, or both. The codice_45 is quite simple and only requires the codice_109 to be implemented by the composing class. The codice_36 is more complex and provides a series of methods such as codice_111, which allows for a finer operation of iteration in several contexts such as adding or eliminating items, or skipping over them to access other items. Thus, any user-defined class can support standard iteration by composing these roles and implementing the codice_109 and/or codice_111 methods.