type 'a fileb = { mutable taille : int; mutable tete : int; mutable queue : int; donnees : 'a array };; let creer_fileb capacity x = { taille=0; tete=0; queue=0; donnees=Array.make capacity x };; (* User must make sure that the size isn't bigger than capacity *) let enfiler_fileb f x = f.donnees.(f.queue) <- x; f.queue <- (f.queue + 1) mod Array.length f.donnees; f.taille <- f.taille + 1 ;; (* User must make sure that the queue isn't empty *) let defiler_fileb f = let x = f.donnees.(f.tete) in f.tete <- (f.tete + 1) mod Array.length f.donnees; f.taille <- f.taille - 1; x ;; let est_vide_fileb f = f.taille <= 0;;