summaryrefslogtreecommitdiff
path: root/src/lib/sounds/sig.ml
diff options
context:
space:
mode:
authorSébastien Dailly <sebastien@chimrod.com>2021-09-03 15:15:00 +0200
committerSébastien Dailly <sebastien@chimrod.com>2021-09-03 15:15:00 +0200
commit48dc04c3b9afe19207d15b873452129d9c2b3b4c (patch)
tree2c46df86808aa738a28ce95d5b62a58ffaf12459 /src/lib/sounds/sig.ml
parentad45e1b397ba995dc0222057a8dc1d0c38970c4f (diff)
Continued refactoring
Diffstat (limited to 'src/lib/sounds/sig.ml')
-rw-r--r--src/lib/sounds/sig.ml71
1 files changed, 71 insertions, 0 deletions
diff --git a/src/lib/sounds/sig.ml b/src/lib/sounds/sig.ml
new file mode 100644
index 0000000..372b888
--- /dev/null
+++ b/src/lib/sounds/sig.ml
@@ -0,0 +1,71 @@
+module type T = sig
+ type t
+ val muted : t -> t
+
+ val a : t
+ val e : [`Closed | `Opened] -> t
+ val eu : t
+
+ val o : t
+ val schwa : unit -> t
+
+ (** This is an empty sound.
+
+ It can be used to replace any element in a syllabus *)
+ val none: t
+
+ (** This is the voyel i like in "ici"
+ When nazalized, the voyel become [in] like in "ainsi" *)
+ val i : t
+
+ (** This is the sound present with letter [ai].
+ It is the e like in "semaine".
+
+ When nazalized, the voyel become [in]
+
+
+ *)
+ val voyel_ai : t
+
+ (** This is the sound ou like in "ouvrier"
+ When nazalized, the voyel does not change *)
+ val voyel_u : t
+
+ (** This is the sound u like in "unis"
+ When nazalized, the voyel become [un] like in "brun" *)
+ val voyel_y : t
+
+ (** Create a diphtongue from a semi-voyel and a voyel *)
+ val diphtongue: t -> t -> t
+
+ val nasal: t -> t option
+
+ val p: t
+ val b: t
+ val t: t
+ val d: t
+ val k: t
+ val g: t
+ val f: t
+ val v: t
+ val s: t
+ val z: t
+ val sz: t
+ val ch: t
+ val j: t
+
+ val n: t
+ val m: t
+
+ val r: t
+ val l: t
+
+ val semi_voyel_w: t
+ val semi_voyel_y: t
+
+ val is_voyel : t -> bool
+ val is_nasal : t -> bool
+
+ val repr : t -> string
+
+end