blob: 253df21e2635858db2b5671a247810d547a14595 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
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.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
|