type 'a voyel = ('a * 'a) type 'a consonants = { ending : 'a option option ; opening : 'a list ; following : 'a option } type 'a group = 'a voyel * 'a consonants option type 'a modifier = (module Sounds.T with type t = 'a) -> ('a group * 'a option option) -> ('a group * 'a option option)