:name="name"::string :french name="french"::name :esperanto name="esperanto"::name :$ a(name) {name} is english or generic :$ a(name:nom::french name) {nom} is french ~ a("bob"::name) ~ a("pierre"::french name) ~ a("idk"::esperanto name)