open StdLabels (** Mute the last consonant if there is no voyel in the syllabus. This modifier is only applied in the first step, and not repeated anymore. *)let process : 'a Sig.modifier = fun (type el) m init -> let module T = (val m:Sounds.Sig.T with type t = el) in let (((v1, v2), c) , ending) = init in let is_voyel = T.is_voyel v1 && T.is_voyel v2 in match is_voyel, c with | false, Some c -> let c = { c with Sig.opening = List.map ~f:T.muted c.Sig.opening } in (((v1, v2), Some c) , ending) | _ -> init