EN
PréludeChargé par défaut — aucun import nécessaire.

Iterable — une interface unique pour tout ce que for x in <c> sait parcourir

Synopsis
interface Iterable f where
iterate : f a -> (a -> () with e) -> () with IterEff f | e
Instances : Array, List, Vector
iterateArrFrom : Array a -> Int -> Int -> (a -> () with e) -> () with Mut | e

Un tableau VIVANT : chaque lecture d'élément est getArr (une opération Mut), donc l'instance déclare effect IterEff = Mut — itérer un Array porte with Mut dans sa rangée d'effets, visiblement. (L'instance vit ici avec son interface ; les opérations d'Array restent avec l'effet Mut.) Le parcours compté de l'instance, en récursion de queue DIRECTE — délibérément sans var/while internes : leur région runMut locale désucrée, une fois la méthode INLINÉE sous le runMut d'un appelant, heurte la miscompilation runMut-imbriqué du backend C (préexistante ; repro + fixture aiguillés vers le chantier backend). Même régime de pile constante que whileLoop.