FancyNameBuilder := NameSequence clone do( alphabet := NameOption clone setOptions("a b c d e f g h i j k l m n o p q r s t u v w x y z" split) onset := NameOption clone setOptions("p b t d k g f v s z m n l r w j c h" split) nucleus := NameOption clone setOptions("a e i o u" split) coda := NameOption clone setOptions("p b t d k g f v s z m n l r j q x c" split) onset2 := NameOption clone setOptions("th sh ch sf sv sc pr br tr dr kr gr sp st sk sw sm sn pl bl tl dl kl gl fr vr sr fl vl sl pw bw tw dw kw gw" split) nucleus2 := NameOption clone setOptions("ai ee oa oo" split) coda2 := NameOption clone setOptions("ch th sh ct ft fk zd mp nt nd nk ng sp st sk lp lt lk" split) o := onset v := nucleus d := coda oo := onset2 vv := nucleus2 dd := coda2 ovd := NameBuilder clone setOptions(list(v, o, d)) do( builder := method(v, o, d, o .. v .. d)) oovd := NameBuilder clone setOptions(list(v, oo, d)) do( builder := method(v, o, d, o .. v .. d)) ovvd := NameBuilder clone setOptions(list(vv, o, d)) do( builder := method(v, o, d, o .. v .. d)) ovdd := NameBuilder clone setOptions(list(v, o, dd)) do( builder := method(v, o, d, o .. v .. d)) four := NameZip clone setOptions(list(oovd, ovvd, ovdd)) oovvd := NameBuilder clone setOptions(list(vv, oo, d)) do( builder := method(v, o, d, o .. v .. d)) ovvdd := NameBuilder clone setOptions(list(vv, o, dd)) do( builder := method(v, o, d, o .. v .. d)) oovdd := NameBuilder clone setOptions(list(v, oo, dd)) do( builder := method(v, o, d, o .. v .. d)) ovovd := NameBuilder clone setOptions(list(v, v, o, o, d)) do( builder := method(v1, v2, o1, o2, d, o1 .. v1 .. o2 .. v2 .. d)) five := NameZip clone setOptions(list(oovvd, ovvdd, ovovd)) oovvdd := NameBuilder clone setOptions(list(vv, oo, dd)) do( builder := method(v, o, d, o .. v .. d)) oovovd := NameBuilder clone setOptions(list(v, v, oo, o, d)) do( builder := method(v1, v2, o1, o2, d, o1 .. v1 .. o2 .. v2 .. d)) ovvovd := NameBuilder clone setOptions(list(vv, v, oo, o, d)) do( builder := method(v1, v2, o1, o2, d, o1 .. v1 .. o2 .. v2 .. d)) ovoovd := NameBuilder clone setOptions(list(v, v, o, oo, d)) do( builder := method(v1, v2, o1, o2, d, o1 .. v1 .. o2 .. v2 .. d)) ovovvd := NameBuilder clone setOptions(list(v, vv, o, o, d)) do( builder := method(v1, v2, o1, o2, d, o1 .. v1 .. o2 .. v2 .. d)) ovovdd := NameBuilder clone setOptions(list(v, v, o, o, dd)) do( builder := method(v1, v2, o1, o2, d, o1 .. v1 .. o2 .. v2 .. d)) six := NameZip clone setOptions(list(oovvdd, oovovd, ovvovd, ovoovd, ovovvd, ovovdd)) ovovovd := NameBuilder clone setOptions(list(v, v, v, o, o, o, d)) do( builder := method(v1, v2, v3, o1, o2, o3, d, o1 .. v1 .. o2 .. v2 .. o3 .. v3 .. d)) oovoovd := NameBuilder clone setOptions(list(v, v, oo, oo, d)) do( builder := method(v1, v2, o1, o2, d, o1 .. v1 .. o2 .. v2 .. d)) ovvoovd := NameBuilder clone setOptions(list(vv, v, o, oo, d)) do( builder := method(v1, v2, o1, o2, d, o1 .. v1 .. o2 .. v2 .. d)) oovvovd := NameBuilder clone setOptions(list(vv, v, oo, o, d)) do( builder := method(v1, v2, o1, o2, d, o1 .. v1 .. o2 .. v2 .. d)) ovvovvd := NameBuilder clone setOptions(list(vv, vv, o, o, d)) do( builder := method(v1, v2, o1, o2, d, o1 .. v1 .. o2 .. v2 .. d)) ovoovvd := NameBuilder clone setOptions(list(v, vv, o, oo, d)) do( builder := method(v1, v2, o1, o2, d, o1 .. v1 .. o2 .. v2 .. d)) oovovvd := NameBuilder clone setOptions(list(v, vv, oo, o, d)) do( builder := method(v1, v2, o1, o2, d, o1 .. v1 .. o2 .. v2 .. d)) oovovdd := NameBuilder clone setOptions(list(v, v, oo, o, d)) do( builder := method(v1, v2, o1, o2, d, o1 .. v1 .. o2 .. v2 .. d)) ovvovdd := NameBuilder clone setOptions(list(vv, v, o, o, d)) do( builder := method(v1, v2, o1, o2, d, o1 .. v1 .. o2 .. v2 .. d)) ovoovdd := NameBuilder clone setOptions(list(v, v, o, oo, d)) do( builder := method(v1, v2, o1, o2, d, o1 .. v1 .. o2 .. v2 .. d)) ovovvdd := NameBuilder clone setOptions(list(v, vv, o, o, d)) do( builder := method(v1, v2, o1, o2, d, o1 .. v1 .. o2 .. v2 .. d)) seven := NameZip clone setOptions(list(ovovovd, oovoovd, ovvoovd, oovvovd, ovvovvd, ovoovvd, oovovvd, oovovdd, ovvovdd, ovoovdd, ovovvdd)) setOptions(list(alphabet, ovd, four, five, six, seven)) )