La méthode balai efface récursivement et physiquement certaines copie en les faisant pointer vers la copie précedente.
class sauvegarde_autogérée = 
  object (self : 'mytype)
    inherit sauvegarde
    method private coup_de_balai p q =
      try 
        let q' = if p = q then 2 * q else q in
        let la_sauvegarde = self # récupère # coup_de_balai (succ p) q' in
        copie <- la_sauvegarde;
        if p = q then Some self else la_sauvegarde
      with Not_found -> None 
    method balai = ignore (self#coup_de_balai 1 1)
  end;;
Remarquer l'importance de faire une méthode auxilliaire de coup_de_balai. Une fonction ne conviendrait pas, car coup_de_balai utilise la variable d'instance copie.