resource ParadigmsBel = MorphoBel ** open Predef, Prelude, CatBel, ResBel in { oper regN : Str -> N -- s;Nom;Sg = \form -> case form of { _ + "цат" => mkN056 form; _ + "фат" => mkN099 form; _ + "бат" => mkN131 form; _ + "ват" => mkN131 form; _ + "кат" => mkN131 form; _ + "энт" => mkN131 form; _ + "онт" => mkN056 form; _ + "ікт" => mkN056 form; _ + "укт" => mkN056 form; _ + "сіт" => mkN131 form; _ + "біт" => mkN131 form; _ + "ірт" => mkN205 form; _ + "ост" => mkN056 form; _ + "уст" => mkN125 form; _ + "эфт" => mkN056 form; _ + "нёт" => mkN056 form; _ + "ыёт" => mkN131 form; _ + "аэт" => mkN131 form; _ + "цэт" => mkN131 form; _ + "чыт" => mkN125 form; _ + "гут" => mkN125 form; _ + "'ят" => mkN131 form; _ + "лец" => mkN002 form; _ + "аец" => mkN235 form; _ + "еец" => mkN235 form; _ + "ыец" => mkN235 form; _ + "іец" => mkN235 form; _ + "зец" => mkN265 form; _ + "вец" => mkN300 form; _ + "рац" => mkN286 form; _ + "рка" => mkN003 form; _ + "іка" => mkN003 form; _ + "ека" => mkN003 form; _ + "ыка" => mkN003 form; _ + "ўка" => mkN217 form; _ + "ука" => mkN026 form; _ + "эка" => mkN026 form; _ + "ока" => mkN026 form; _ + "ака" => mkN026 form; _ + "яка" => mkN026 form; _ + "йка" => mkN124 form; _ + "ька" => mkN196 form; _ + "ква" => mkN039 form; _ + "ова" => mkN150 form; _ + "зва" => mkN039 form; _ + "хва" => mkN039 form; _ + "рва" => mkN039 form; _ + "ева" => mkN138 form; _ + "ява" => mkN150 form; _ + "эва" => mkN166 form; _ + "уза" => mkN012 form; _ + "аза" => mkN012 form; _ + "нза" => mkN012 form; _ + "еза" => mkN024 form; _ + "ўза" => mkN039 form; _ + "яза" => mkN187 form; _ + "іма" => mkN012 form; _ + "ома" => mkN012 form; _ + "ьма" => mkN091 form; _ + "чма" => mkN215 form; _ + "ьба" => mkN012 form; _ + "аба" => mkN012 form; _ + "ыба" => mkN012 form; _ + "ёба" => mkN024 form; _ + "жба" => mkN039 form; _ + "чба" => mkN039 form; _ + "ўба" => mkN091 form; _ + "ўна" => mkN012 form; _ + "ына" => mkN012 form; _ + "ана" => mkN012 form; _ + "рна" => mkN012 form; _ + "дна" => mkN024 form; _ + "нна" => mkN039 form; _ + "яна" => mkN061 form; _ + "уна" => mkN091 form; _ + "спа" => mkN012 form; _ + "лпа" => mkN083 form; _ + "гла" => mkN012 form; _ + "ула" => mkN188 form; _ + "ёла" => mkN012 form; _ + "іла" => mkN188 form; _ + "ела" => mkN188 form; _ + "яла" => mkN091 form; _ + "сла" => mkN260 form; _ + "ыса" => mkN012 form; _ + "оса" => mkN024 form; _ + "йга" => mkN020 form; _ + "рга" => mkN061 form; _ + "ьга" => mkN088 form; _ + "ята" => mkN245 form; _ + "ыта" => mkN245 form; _ + "дра" => mkN102 form; _ + "тра" => mkN080 form; _ + "бра" => mkN080 form; _ + "ўра" => mkN099 form; _ + "кра" => mkN102 form; _ + "ыца" => mkN137 form; _ + "ўца" => mkN137 form; _ + "дца" => mkN078 form; _ + "йца" => mkN078 form; _ + "чца" => mkN078 form; _ + "нца" => mkN080 form; _ + "рца" => mkN080 form; _ + "сца" => mkN080 form; _ + "ржа" => mkN064 form; _ + "жжа" => mkN080 form; _ + "джа" => mkN102 form; _ + "ыча" => mkN036 form; _ + "эча" => mkN036 form; _ + "яча" => mkN064 form; _ + "чча" => mkN080 form; _ + "нча" => mkN102 form; _ + "оха" => mkN309 form; _ + "ьха" => mkN309 form; _ + "зык" => mkN005 form; _ + "мык" => mkN005 form; _ + "тык" => mkN043 form; _ + "аяк" => mkN005 form; _ + "пяк" => mkN005 form; _ + "ляк" => mkN063 form; _ + "мак" => mkN006 form; _ + "пак" => mkN006 form; _ + "шак" => mkN006 form; _ + "сак" => mkN006 form; _ + "вак" => mkN063 form; _ + "зак" => mkN251 form; _ + "вік" => mkN005 form; _ + "лік" => mkN043 form; _ + "вук" => mkN006 form; _ + "цук" => mkN006 form; _ + "рук" => mkN043 form; _ + "шук" => mkN043 form; _ + "нук" => mkN063 form; _ + "чук" => mkN328 form; _ + "шок" => mkN015 form; _ + "мок" => mkN063 form; _ + "чок" => mkN015 form; _ + "нок" => mkN015 form; _ + "рэк" => mkN063 form; _ + "цуг" => mkN005 form; _ + "раг" => mkN063 form; _ + "онг" => mkN008 form; _ + "рог" => mkN337 form; _ + "лог" => mkN200 form; _ + "жух" => mkN005 form; _ + "тух" => mkN063 form; _ + "нах" => mkN063 form; _ + "віч" => mkN062 form; _ + "нач" => mkN184 form; _ + "ршч" => mkN204 form; _ + "пыр" => mkN334 form; _ + "лор" => mkN007 form; _ + "рор" => mkN042 form; _ + "пор" => mkN059 form; _ + "хор" => mkN155 form; _ + "фар" => mkN007 form; _ + "нар" => mkN007 form; _ + "хар" => mkN019 form; _ + "гар" => mkN019 form; _ + "вар" => mkN042 form; _ + "жар" => mkN042 form; _ + "сір" => mkN062 form; _ + "пір" => mkN062 form; _ + "хір" => mkN365 form; _ + "гір" => mkN365 form; _ + "кер" => mkN007 form; _ + "мер" => mkN042 form; _ + "лер" => mkN042 form; _ + "нер" => mkN062 form; _ + "вер" => mkN174 form; _ + "ґер" => mkN127 form; _ + "цэр" => mkN062 form; _ + "шэр" => mkN062 form; _ + "дэр" => mkN062 form; _ + "гур" => mkN062 form; _ + "чур" => mkN062 form; _ + "аўр" => mkN334 form; _ + "ыгр" => mkN334 form; _ + "даж" => mkN034 form; _ + "гаж" => mkN071 form; _ + "ыум" => mkN031 form; _ + "нос" => mkN013 form; _ + "пус" => mkN009 form; _ + "лас" => mkN009 form; _ + "рас" => mkN045 form; _ + "лёс" => mkN011 form; _ + "цыс" => mkN013 form; _ + "нес" => mkN045 form; _ + "зіс" => mkN045 form; _ + "вол" => mkN035 form; _ + "рол" => mkN159 form; _ + "пел" => mkN011 form; _ + "рал" => mkN013 form; _ + "дал" => mkN013 form; _ + "кал" => mkN013 form; _ + "сал" => mkN013 form; _ + "сул" => mkN013 form; _ + "мул" => mkN045 form; _ + "нёл" => mkN013 form; _ + "вон" => mkN009 form; _ + "рон" => mkN011 form; _ + "лон" => mkN011 form; _ + "зон" => mkN011 form; _ + "аон" => mkN013 form; _ + "зан" => mkN013 form; _ + "бан" => mkN195 form; _ + "зін" => mkN011 form; _ + "фін" => mkN013 form; _ + "він" => mkN013 form; _ + "рэн" => mkN011 form; _ + "зын" => mkN011 form; _ + "лын" => mkN214 form; _ + "іян" => mkN013 form; _ + "лян" => mkN045 form; _ + "цян" => mkN195 form; _ + "жун" => mkN195 form; _ + "кун" => mkN195 form; _ + "сун" => mkN195 form; _ + "пун" => mkN366 form; _ + "лаб" => mkN009 form; _ + "ваб" => mkN011 form; _ + "раб" => mkN013 form; _ + "арб" => mkN045 form; _ + "цай" => mkN022 form; _ + "гай" => mkN117 form; _ + "тай" => mkN117 form; _ + "чай" => mkN305 form; _ + "бой" => mkN017 form; _ + "рой" => mkN022 form; _ + "пой" => mkN305 form; _ + "зей" => mkN022 form; _ + "куй" => mkN099 form; _ + "мыз" => mkN011 form; _ + "цуз" => mkN013 form; _ + "буз" => mkN214 form; _ + "куп" => mkN013 form; _ + "чуп" => mkN045 form; _ + "ноп" => mkN035 form; _ + "хоп" => mkN045 form; _ + "льф" => mkN011 form; _ + "орф" => mkN011 form; _ + "сад" => mkN037 form; _ + "гад" => mkN037 form; _ + "айд" => mkN037 form; _ + "код" => mkN037 form; _ + "лод" => mkN048 form; _ + "луд" => mkN048 form; _ + "пед" => mkN037 form; _ + "зед" => mkN081 form; _ + "оід" => mkN037 form; _ + "туш" => mkN034 form; _ + "рыш" => mkN062 form; _ + "дло" => mkN278 form; _ + "яло" => mkN278 form; _ + "бло" => mkN278 form; _ + "ало" => mkN316 form; _ + "іно" => mkN061 form; _ + "гно" => mkN278 form; _ + "тно" => mkN316 form; _ + "дро" => mkN246 form; _ + "яро" => mkN246 form; _ + "шкі" => mkN242 form; _ + "ані" => mkN088 form; _ + "дні" => mkN241 form; _ + "уры" => mkN061 form; _ + "юты" => mkN181 form; _ + "оны" => mkN145 form; _ + "чны" => mkN181 form; _ + "ены" => mkN291 form; _ + "аны" => mkN291 form; _ + "нны" => mkN291 form; _ + "іцы" => mkN145 form; _ + "ёды" => mkN145 form; _ + "зія" => mkN133 form; _ + "хія" => mkN133 form; _ + "лея" => mkN133 form; _ + "ель" => mkN237 form; _ + "унь" => mkN164 form; _ + "энь" => mkN164 form; _ + "ань" => mkN164 form; _ + "онь" => mkN164 form; _ + "азь" => mkN100 form; _ + "дзь" => mkN152 form; _ + "ось" => mkN375 form; _ + "ась" => mkN375 form; _ + "яць" => mkN325 form; _ + "уць" => mkN325 form; _ + "іць" => mkN325 form; _ + "іт" => mkN056 form; _ + "рт" => mkN056 form; _ + "ст" => mkN131 form; _ + "ыт" => mkN056 form; _ + "ят" => mkN056 form; _ + "лт" => mkN056 form; _ + "шт" => mkN056 form; _ + "нц" => mkN042 form; _ + "яц" => mkN046 form; _ + "ац" => mkN046 form; _ + "ва" => mkN024 form; _ + "за" => mkN016 form; _ + "ма" => mkN016 form; _ + "ба" => mkN016 form; _ + "на" => mkN016 form; _ + "па" => mkN016 form; _ + "ла" => mkN024 form; _ + "са" => mkN016 form; _ + "га" => mkN021 form; _ + "та" => mkN023 form; _ + "ра" => mkN036 form; _ + "ца" => mkN036 form; _ + "жа" => mkN036 form; _ + "ша" => mkN036 form; _ + "ча" => mkN297 form; _ + "эа" => mkN061 form; _ + "да" => mkN087 form; _ + "ха" => mkN114 form; _ + "ык" => mkN063 form; _ + "як" => mkN006 form; _ + "ак" => mkN178 form; _ + "юк" => mkN006 form; _ + "ок" => mkN043 form; _ + "ск" => mkN043 form; _ + "ўк" => mkN044 form; _ + "ёк" => mkN122 form; _ + "уг" => mkN115 form; _ + "рг" => mkN008 form; _ + "аг" => mkN008 form; _ + "яг" => mkN008 form; _ + "зг" => mkN030 form; _ + "ог" => mkN105 form; _ + "ег" => mkN200 form; _ + "іх" => mkN006 form; _ + "эх" => mkN008 form; _ + "ях" => mkN113 form; _ + "рч" => mkN007 form; _ + "іч" => mkN007 form; _ + "юч" => mkN034 form; _ + "яч" => mkN034 form; _ + "шч" => mkN034 form; _ + "ыч" => mkN034 form; _ + "еч" => mkN184 form; _ + "эч" => mkN184 form; _ + "ыр" => mkN019 form; _ + "ар" => mkN062 form; _ + "ір" => mkN007 form; _ + "яр" => mkN019 form; _ + "юр" => mkN042 form; _ + "гр" => mkN062 form; _ + "ёр" => mkN062 form; _ + "аж" => mkN062 form; _ + "ож" => mkN059 form; _ + "ўж" => mkN155 form; _ + "рж" => mkN155 form; _ + "дж" => mkN204 form; _ + "ам" => mkN031 form; _ + "ум" => mkN045 form; _ + "ьм" => mkN031 form; _ + "ім" => mkN031 form; _ + "йм" => mkN031 form; _ + "ём" => mkN031 form; _ + "юм" => mkN031 form; _ + "эм" => mkN045 form; _ + "яс" => mkN009 form; _ + "ёс" => mkN045 form; _ + "нс" => mkN045 form; _ + "рс" => mkN045 form; _ + "эс" => mkN045 form; _ + "ыл" => mkN011 form; _ + "ел" => mkN330 form; _ + "эл" => mkN045 form; _ + "іл" => mkN013 form; _ + "ёл" => mkN018 form; _ + "ін" => mkN239 form; _ + "эн" => mkN013 form; _ + "рн" => mkN011 form; _ + "ын" => mkN013 form; _ + "ен" => mkN013 form; _ + "ун" => mkN214 form; _ + "рб" => mkN035 form; _ + "ўб" => mkN035 form; _ + "юб" => mkN045 form; _ + "уб" => mkN050 form; _ + "ыб" => mkN050 form; _ + "ей" => mkN017 form; _ + "яй" => mkN017 form; _ + "эй" => mkN022 form; _ + "уй" => mkN067 form; _ + "ыз" => mkN045 form; _ + "оз" => mkN057 form; _ + "уп" => mkN050 form; _ + "ап" => mkN013 form; _ + "ўп" => mkN045 form; _ + "ып" => mkN045 form; _ + "іф" => mkN045 form; _ + "рд" => mkN037 form; _ + "юд" => mkN081 form; _ + "зд" => mkN082 form; _ + "ьв" => mkN120 form; _ + "аш" => mkN034 form; _ + "уш" => mkN046 form; _ + "рш" => mkN046 form; _ + "ўш" => mkN059 form; _ + "ро" => mkN061 form; _ + "кі" => mkN322 form; _ + "ні" => mkN099 form; _ + "ці" => mkN099 form; _ + "лі" => mkN241 form; _ + "гі" => mkN242 form; _ + "ыё" => mkN061 form; _ + "нё" => mkN433 form; _ + "ье" => mkN061 form; _ + "ае" => mkN361 form; _ + "ры" => mkN145 form; _ + "ты" => mkN145 form; _ + "шы" => mkN181 form; _ + "бы" => mkN291 form; _ + "лы" => mkN291 form; _ + "чы" => mkN291 form; _ + "мы" => mkN291 form; _ + "мя" => mkN092 form; _ + "бя" => mkN092 form; _ + "оя" => mkN133 form; _ + "ця" => mkN154 form; _ + "ка" => mkN004 form; _ + "ль" => mkN100 form; _ + "нь" => mkN100 form; _ + "зь" => mkN410 form; _ + "сь" => mkN116 form; _ + "ыў" => mkN252 form; _ + "еў" => mkN252 form; _ + "т" => mkN032 form; _ + "ц" => mkN127 form; _ + "к" => mkN008 form; _ + "г" => mkN043 form; _ + "х" => mkN043 form; _ + "ч" => mkN019 form; _ + "р" => mkN046 form; _ + "ж" => mkN046 form; _ + "м" => mkN011 form; _ + "с" => mkN031 form; _ + "л" => mkN031 form; _ + "н" => mkN031 form; _ + "б" => mkN031 form; _ + "й" => mkN010 form; _ + "з" => mkN031 form; _ + "п" => mkN031 form; _ + "ф" => mkN031 form; _ + "д" => mkN027 form; _ + "в" => mkN031 form; _ + ("яляш"|"ялюш") => mkN243 form; _ + "о" => mkN055 form; _ + "і" => mkN061 form; _ + "э" => mkN061 form; _ + "ё" => mkN230 form; _ + "ю" => mkN061 form; _ + "е" => mkN201 form; _ + "ы" => mkN283 form; _ + "я" => mkN206 form; _ + "у" => mkN088 form; _ + "ь" => mkN262 form; _ + "o" => mkN144 form; _ + "ў" => mkN351 form; _ => error "Cannot find an inflection rule" } ; reg2N : Str -> Str -> N -- s;Nom;Sg s;Acc;Pl = \form1, form2 -> case of { <_ + "мак", _ + "мкі"> => mkN178 form1; <_ + "ана", _ + "оны"> => mkN070 form1; <_ + "ана", _ + "эны"> => mkN182 form1; <_ + "нер", _ + "яры"> => mkN069 form1; <_ + "ель", _ + "блі"> => mkN118 form1; <_ + "ель", _ + "флі"> => mkN179 form1; <_ + "ань", _ + "жні"> => mkN177 form1; <_ + "раб", _ + "оў"> => mkN195 form1; <_ + "вак", _ + "оў"> => mkN328 form1; <_ + "вец", _ + "оў"> => mkN420 form1; <_ + "рка", _ + "і"> => mkN004 form1; <_ + "іка", _ + "і"> => mkN026 form1; <_ + "ека", _ + "і"> => mkN256 form1; <_ + "ыка", _ + "і"> => mkN026 form1; <_ + "ыка", _ + "ў"> => mkN129 form1; <_ + "ўка", _ + "к"> => mkN161 form1; <_ + "зык", _ + "ў"> => mkN006 form1; <_ + "мак", _ + "і"> => mkN005 form1; <_ + "пак", _ + "і"> => mkN005 form1; <_ + "шок", _ + "і"> => mkN008 form1; <_ + "лік", _ + "ў"> => mkN063 form1; <_ + "нос", _ + "ы"> => mkN009 form1; <_ + "гай", _ + "і"> => mkN010 form1; <_ + "льф", _ + "ы"> => mkN031 form1; <_ + "рон", _ + "ў"> => mkN013 form1; <_ + "лон", _ + "ў"> => mkN029 form1; <_ + "лон", _ + "ы"> => mkN045 form1; <_ + "лёс", _ + "ы"> => mkN045 form1; <_ + "зін", _ + "ы"> => mkN031 form1; <_ + "уза", _ + "ы"> => mkN091 form1; <_ + "аза", _ + "ы"> => mkN016 form1; <_ + "аза", _ + "з"> => mkN139 form1; <_ + "ьба", _ + "ы"> => mkN016 form1; <_ + "іма", _ + "ы"> => mkN091 form1; <_ + "ына", _ + "ы"> => mkN016 form1; <_ + "спа", _ + "ы"> => mkN039 form1; <_ + "ана", _ + "ы"> => mkN016 form1; <_ + "гла", _ + "ы"> => mkN356 form1; <_ + "аба", _ + "ы"> => mkN016 form1; <_ + "ула", _ + "л"> => mkN012 form1; <_ + "ула", _ + "ы"> => mkN016 form1; <_ + "ыса", _ + "ы"> => mkN016 form1; <_ + "рна", _ + "ы"> => mkN091 form1; <_ + "раб", _ + "ы"> => mkN031 form1; <_ + "іян", _ + "ы"> => mkN031 form1; <_ + "цыс", _ + "ы"> => mkN031 form1; <_ + "мок", _ + "і"> => mkN015 form1; <_ + "іла", _ + "ы"> => mkN016 form1; <_ + "ела", _ + "ы"> => mkN016 form1; <_ + "ова", _ + "ў"> => mkN138 form1; <_ + "вол", _ + "ў"> => mkN029 form1; <_ + "дра", _ + "ў"> => mkN141 form1; <_ + "гад", _ + "ў"> => mkN081 form1; <_ + "зва", _ + "ў"> => mkN083 form1; <_ + "рва", _ + "ў"> => mkN083 form1; <_ + "вар", _ + "ў"> => mkN062 form1; <_ + "рук", _ + "ў"> => mkN328 form1; <_ + "нер", _ + "ы"> => mkN046 form1; <_ + "ост", _ + "ы"> => mkN054 form1; <_ + "энт", _ + "ы"> => mkN056 form1; <_ + "вер", _ + "ў"> => mkN062 form1; <_ + "раг", _ + "і"> => mkN115 form1; <_ + "ўца", _ + "ў"> => mkN078 form1; <_ + "бра", _ + "ы"> => mkN102 form1; <_ + "ьма", _ + "ў"> => mkN083 form1; <_ + "ель", _ + "і"> => mkN100 form1; <_ + "рог", _ + "і"> => mkN105 form1; <_ + "рог", _ + "ў"> => mkN339 form1; <_ + "унь", _ + "і"> => mkN121 form1; <_ + "йка", _ + "к"> => mkN160 form1; <_ + "ька", _ + "ў"> => mkN129 form1; <_ + "ька", _ + "і"> => mkN197 form1; <_ + "яць", _ + "ў"> => mkN132 form1; <_ + "ось", _ + "ў"> => mkN152 form1; <_ + "зак", _ + "ў"> => mkN191 form1; <_ + "ар", _ + "тры"> => mkN373 form1; <_ + "ок", _ + "ркі"> => mkN015 form1; <_ + "ок", _ + "ткі"> => mkN015 form1; <_ + "ок", _ + "акі"> => mkN030 form1; <_ + "ва", _ + "івы"> => mkN150 form1; <_ + "ла", _ + "элы"> => mkN182 form1; <_ + "ла", _ + "ылы"> => mkN188 form1; <_ + "са", _ + "осы"> => mkN070 form1; <_ + "ел", _ + "елы"> => mkN031 form1; <_ + "ль", _ + "злі"> => mkN177 form1; <_ + "нь", _ + "дні"> => mkN173 form1; <_ + "нь", _ + "ўні"> => mkN175 form1; <_ + "нь", _ + "сні"> => mkN179 form1; <_ + "нь", _ + "пні"> => mkN179 form1; <_ + "нь", _ + "яні"> => mkN400 form1; <_ + "ак", _ + "оў"> => mkN006 form1; <_ + "ык", _ + "оў"> => mkN006 form1; <_ + "як", _ + "аў"> => mkN063 form1; <_ + "ар", _ + "оў"> => mkN019 form1; <_ + "ла", _ + "ол"> => mkN139 form1; <_ + "ын", _ + "оў"> => mkN038 form1; <_ + "яр", _ + "аў"> => mkN062 form1; <_ + "іт", _ + "ты"> => mkN032 form1; <_ + "ль", _ + "ёў"> => mkN203 form1; <_ + "ак", _ + "ў"> => mkN276 form1; <_ + "ык", _ + "і"> => mkN008 form1; <_ + "ыр", _ + "ы"> => mkN034 form1; <_ + "ір", _ + "ы"> => mkN042 form1; <_ + "ар", _ + "ы"> => mkN046 form1; <_ + "аг", _ + "ў"> => mkN063 form1; <_ + "эх", _ + "ў"> => mkN063 form1; <_ + "ма", _ + "м"> => mkN012 form1; <_ + "на", _ + "н"> => mkN012 form1; <_ + "ба", _ + "б"> => mkN012 form1; <_ + "ла", _ + "л"> => mkN012 form1; <_ + "па", _ + "п"> => mkN012 form1; <_ + "ап", _ + "ы"> => mkN031 form1; <_ + "эл", _ + "ў"> => mkN013 form1; <_ + "ен", _ + "ы"> => mkN045 form1; <_ + "ей", _ + "ў"> => mkN022 form1; <_ + "ёл", _ + "ы"> => mkN031 form1; <_ + "та", _ + "ў"> => mkN078 form1; <_ + "ін", _ + "ы"> => mkN031 form1; <_ + "ст", _ + "ы"> => mkN032 form1; <_ + "шч", _ + "ў"> => mkN346 form1; <_ + "ца", _ + "ц"> => mkN137 form1; <_ + "рд", _ + "ў"> => mkN081 form1; <_ + "ск", _ + "ў"> => mkN063 form1; <_ + "еч", _ + "ы"> => mkN069 form1; <_ + "ча", _ + "ў"> => mkN141 form1; <_ + "бя", _ + "т"> => mkN153 form1; <_ + "ль", _ + "ў"> => mkN152 form1; <_ + "нь", _ + "ў"> => mkN152 form1; <_ + "ха", _ + "і"> => mkN309 form1; <_ + "зь", _ + "ў"> => mkN132 form1; <_ + "оя", _ + "і"> => mkN301 form1; <_ + "ж", _ + "ыжы"> => mkN090 form1; <_ + "г", _ + "ўгі"> => mkN044 form1; <_ + "с", _ + "ысы"> => mkN050 form1; <_ + "д", _ + "оды"> => mkN037 form1; <_ + "р", _ + "ары"> => mkN059 form1; <_ + "ь", _ + "кці"> => mkN177 form1; <_ + "ь", _ + "гці"> => mkN177 form1; <_ + "ь", _ + "аці"> => mkN325 form1; <_ + "т", _ + "оў"> => mkN001 form1; <_ + "к", _ + "оў"> => mkN006 form1; <_ + "л", _ + "оў"> => mkN159 form1; <_ + "й", _ + "оі"> => mkN017 form1; <_ + "й", _ + "іі"> => mkN067 form1; <_ + "с", _ + "оў"> => mkN195 form1; <_ + "н", _ + "оў"> => mkN038 form1; <_ + "о", _ + "вы"> => mkN278 form1; <_ + "т", _ + "ў"> => mkN131 form1; <_ + "а", _ + "к"> => mkN003 form1; <_ + "к", _ + "ў"> => mkN063 form1; <_ + "м", _ + "ў"> => mkN013 form1; <_ + "л", _ + "ў"> => mkN013 form1; <_ + "с", _ + "ў"> => mkN013 form1; <_ + "з", _ + "ў"> => mkN013 form1; <_ + "н", _ + "ў"> => mkN013 form1; <_ + "п", _ + "ў"> => mkN029 form1; <_ + "р", _ + "ў"> => mkN062 form1; <_ + "х", _ + "ў"> => mkN063 form1; <_ + "я", _ + "т"> => mkN153 form1; <_ + "я", _ + "ў"> => mkN154 form1; <_ + "я", _ + "ь"> => mkN232 form1; <_ + "я", _ + "й"> => mkN384 form1; <_ + "ц", _ + "ы"> => mkN299 form1; <_ + "ь", _ + "й"> => mkN323 form1; _ => regN form1 } ; compoundN = overload { compoundN : A -> N -> N = \a,n -> lin N { s = \\c,num => a.s ! c ! genNum n.g num ++ n.s ! c ! num ; voc = a.s ! Nom ! genNum n.g Sg ++ n.voc ; g = n.g } ; compoundN : N -> A -> N = \n,a -> lin N { s = \\c,num => n.s ! c ! num ++ a.s ! c ! genNum n.g num ; voc = n.voc ++ a.s ! Nom ! genNum n.g Sg ; g = n.g } ; compoundN : N -> Str -> N = \n,adv -> lin N { s = \\c,num => n.s ! c ! num ++ adv ; voc = n.voc ++ adv ; g = n.g } ; compoundN : Str -> N -> N = \adv,n -> lin N { s = \\c,num => adv ++ n.s ! c ! num ; voc = adv ++ n.voc ; g = n.g } } ; mkPron : (_,_,_,_,_,_ : Str) -> Gender -> Number -> Person -> Pron = \nom,acc,dat,gen,loc,instr,g,n,p -> lin Pron { s = table { Nom => nom ; Acc => acc ; Dat => dat ; Gen => gen ; Loc => loc ; Instr => instr } ; a = {g=g; n = n; p = p} } ; regV : Str -> V -- infinitive = \form -> case form of { _ + "агчы" => mkV021 form; _ + "іць" => mkV036 form; _ + "эць" => mkV048 form; _ + "ыць" => mkV020 form; _ + "уць" => mkV045 form; _ + "ячы" => mkV072 form; _ + "ьці" => mkV013 form; _ + "зці" => mkV049 form; _ + "бці" => mkV137 form; _ + "сці" => mkV016 form; _ + "цца" => mkV043 form; _ + "ма" => mkV013 form; _ + "шы" => mkV013 form; _ + "ь" => mkV015 form; _ => error "Cannot find an inflection rule" } ; reg2V : Str -> Str -> V -- infinitive Imperative;Sg = \form1, form2 -> case of { <_ + "іць", _ + "ані"> => mkV096 form1; <_ + "іць", _ + "яні"> => mkV079 form1; <_ + "іць", _ + "апі"> => mkV017 form1; <_ + "іць", _ + "сці"> => mkV078 form1; <_ + "уць", _ + "кні"> => mkV074 form1; <_ + "уць", _ + "хні"> => mkV074 form1; <_ + "іць", _ + "ві"> => mkV001 form1; <_ + "іць", _ + "бі"> => mkV058 form1; <_ + "іць", _ + "зі"> => mkV058 form1; <_ + "іць", _ + "аі"> => mkV155 form1; <_ + "іць", _ + "пі"> => mkV058 form1; <_ + "іць", _ + "ці"> => mkV033 form1; <_ + "іць", _ + "сі"> => mkV050 form1; <_ + "іць", _ + "ць"> => mkV060 form1; <_ + "іць", _ + "мь"> => mkV106 form1; <_ + "ыць", _ + "жы"> => mkV064 form1; <_ + "іць", _ + "і"> => mkV011 form1; <_ + "іць", _ + "ў"> => mkV139 form1; <_ + "іць", _ + "й"> => mkV156 form1; <_ + "эць", _ + "й"> => mkV015 form1; <_ + "эць", _ + "ь"> => mkV063 form1; <_ + "ыць", _ + "ы"> => mkV070 form1; <_ + "ыць", _ + "й"> => mkV055 form1; <_ + "ыць", _ + "і"> => mkV089 form1; <_ + "уць", _ + "ь"> => mkV037 form1; <_ + "уць", _ + "й"> => mkV055 form1; <_ + "зці", _ + "ь"> => mkV092 form1; <_ + "ь", _ + "жуй"> => mkV003 form1; <_ + "ь", _ + "цай"> => mkV055 form1; <_ + "ь", _ + "лжы"> => mkV125 form1; <_ + "ь", _ + "аві"> => mkV102 form1; <_ + "ь", _ + "ссі"> => mkV145 form1; <_ + "і", _ + "асі"> => mkV137 form1; <_ + "ы", _ + "яжы"> => mkV143 form1; <_ + "а", _ + "іся"> => mkV046 form1; <_ + "а", _ + "ыся"> => mkV046 form1; <_ + "а", _ + "ься"> => mkV080 form1; <_ + "а", _ + "рся"> => mkV087 form1; <_ + "а", _ + "чся"> => mkV087 form1; <_ + "ь", _ + "уй"> => mkV029 form1; <_ + "ь", _ + "ой"> => mkV025 form1; <_ + "ь", _ + "юй"> => mkV120 form1; <_ + "ь", _ + "нь"> => mkV063 form1; <_ + "ь", _ + "шы"> => mkV028 form1; <_ + "ь", _ + "чы"> => mkV130 form1; <_ + "ь", _ + "мі"> => mkV039 form1; <_ + "ь", _ + "ві"> => mkV039 form1; <_ + "ь", _ + "зі"> => mkV115 form1; <_ + "ь", _ + "ні"> => mkV102 form1; <_ + "ь", _ + "бі"> => mkV145 form1; <_ + "і", _ + "сі"> => mkV049 form1; <_ + "і", _ + "ці"> => mkV056 form1; <_ + "ь", _ + "ь"> => mkV018 form1; <_ + "ь", _ + "ы"> => mkV066 form1; <_ + "ь", _ + "ч"> => mkV034 form1; <_ + "ь", _ + "і"> => mkV069 form1; <_ + "і", _ + "ь"> => mkV054 form1; _ => regV form1 } ; compoundV : V -> Str -> V = \v,adv -> lin V { active = \\a => {past=(v.active ! a).past ++ adv ; pres=\\p,num=>(v.active ! a).pres ! p ! num ++ adv } ; imperative = \\num => v.imperative ! num ++ adv ; infinitive = v.infinitive ++ adv ; participle = \\g,num => v.participle ! g ! num ++ adv ; passive = \\a,t => v.passive ! a ! t ++ adv } ; regA : Str -> A -- s;Nom;('GSg', Masc) = \form -> case form of { _ + "які" => mkA006 form; _ + "пы" => mkA002 form; _ + "гі" => mkA006 form; _ + "хі" => mkA006 form; _ + "ні" => mkA005 form; _ + "ці" => mkA005 form; _ + "ыі" => mkA005 form; _ + "ы" => mkA001 form; _ + "і" => mkA003 form; _ + "а" => mkA004 form; _ + "н" => mkA004 form; _ + "т" => mkA004 form; _ + "ў" => mkA004 form; _ + "ь" => mkA004 form; _ => error "Cannot find an inflection rule" } ; reg2A : Str -> Str -> A -- s;Nom;('GSg', Masc) s;Nom;('GSg', Neuter) = \form1, form2 -> case of { <_ + "гі", _ + "ае"> => mkA003 form1; <_ + "хі", _ + "ае"> => mkA003 form1; <_ + "ы", _ + "ое"> => mkA002 form1; <_ + "і", _ + "яе"> => mkA004 form1; <_ + "і", _ + "ое"> => mkA006 form1; _ => regA form1 } ; mkN = overload { mkN : Str -> N = regN; -- s;Nom;Sg mkN : Str -> Str -> N = reg2N -- s;Nom;Sg s;Acc;Pl } ; mkN2 = overload { mkN2 : N -> N2 = \n -> lin N2 (n ** {c2 = noPrep}) ; mkN2 : N -> Prep -> N2 = \n,p -> lin N2 (n ** {c2 = p}) ; } ; mkN3 = overload { mkN3 : N -> N3 = \n -> lin N3 (n ** {c2 = noPrep; c3 = noPrep}) ; mkN3 : N -> Prep -> Prep -> N3 = \n,p1,p2 -> lin N3 (n ** {c2 = p1; c3 = p2}) ; } ; mkV = overload { mkV : Str -> V = regV; -- infinitive mkV : Str -> Str -> V = reg2V -- infinitive Imperative;Sg } ; mkVV : V -> VV = \v -> lin VV v ; mkVS : V -> VS = \v -> lin VS v ; mkVQ : V -> VQ = \v -> lin VQ v ; mkVA : V -> VA = \v -> lin VA v ; mkV2 = overload { mkV2 : V -> V2 = \v -> lin V2 (v ** {c2 = noPrep}) ; mkV2 : V -> Prep -> V2 = \v,p -> lin V2 (v ** {c2 = p}) ; } ; mkV3 = overload { mkV3 : V -> V3 = \v -> lin V3 (v ** {c2 = noPrep; c3 = noPrep}) ; mkV3 : V -> Prep -> Prep -> V3 = \v,p1,p2 -> lin V3 (v ** {c2 = p1; c3 = p2}) ; } ; mkV2A = overload { mkV2A : V -> V2A = \v -> lin V2A (v ** {c2 = noPrep; c3 = noPrep}) ; mkV2A : V -> Prep -> Prep -> V2A = \v,p1,p2 -> lin V2A (v ** {c2 = p1; c3 = p2}) ; } ; mkV2S = overload { mkV2S : V -> V2S = \v -> lin V2S (v ** {c2 = noPrep; c3 = noPrep}) ; mkV2S : V -> Prep -> Prep -> V2S = \v,p1,p2 -> lin V2S (v ** {c2 = p1; c3 = p2}) ; } ; mkV2Q = overload { mkV2Q : V -> V2Q = \v -> lin V2Q (v ** {c2 = noPrep; c3 = noPrep}) ; mkV2Q : V -> Prep -> Prep -> V2Q = \v,p1,p2 -> lin V2Q (v ** {c2 = p1; c3 = p2}) ; } ; mkV2V = overload { mkV2V : V -> V2V = \v -> lin V2V (v ** {c2 = noPrep; c3 = noPrep}) ; mkV2V : V -> Prep -> Prep -> V2V = \v,p1,p2 -> lin V2V (v ** {c2 = p1; c3 = p2}) ; } ; mkA = overload { mkA : Str -> A = regA; -- s;Nom;('GSg', Masc) mkA : Str -> Str -> A = reg2A -- s;Nom;('GSg', Masc) s;Nom;('GSg', Neuter) } ; mkA2 = overload { mkA2 : A -> A2 = \a -> lin A2 (a ** {c2 = noPrep}) ; mkA2 : A -> Prep -> A2 = \a,p -> lin A2 (a ** {c2 = p}) ; } ; mkAdv : Str -> Adv = \s -> lin Adv {s=s} ; mkAdV : Str -> AdV = \s -> lin AdV {s=s} ; mkAdA : Str -> AdA = \s -> lin AdA {s=s} ; mkAdN : Str -> AdN = \s -> lin AdN {s=s} ; mkCAdv : Str -> CAdv = \s -> lin CAdv {s=s; p=""} ; mkInterj : Str -> Interj = \s -> lin Interj {s=s} ; mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; nominative : Case = Nom ; accusative : Case = Acc ; dative : Case = Dat ; genitive : Case = Gen ; locative : Case = Loc ; instrumental : Case = Instr ; mkPrep = overload { mkPrep : Str -> Prep = \s -> lin Prep {s=s; c=Acc} ; mkPrep : Case -> Prep = \c -> lin Prep {s=[]; c=c} ; mkPrep : Str -> Case -> Prep = \s,c -> lin Prep {s=s; c=c} } ; mkIAdv : Str -> IAdv = \s -> lin IAdv {s=s} ; mkIP : Str -> IP = \s -> lin IP (mkSimpleNP s Masc Sg P3) ; mkIQuant : Str -> IQuant = \s -> lin IQuant {s=\\_,_,_ => s} ; mkIDet : Str -> IDet = \s -> lin IDet {s=\\_,_ => s; n=Sg} ; mkSubj : Str -> Subj = \s -> lin Subj {s=s} ; mkQuant : Str -> Quant = \s -> lin Quant {s=\\_,_,_ => s} ; adjQuant : A -> Quant = \a -> lin Quant {s=\\c,g,n => a.s ! c ! genNum g n} ; mkPredet : Str -> Predet = \s -> lin Predet {s=\\_,_,_ => s} ; mkDet : Str -> Det = \s -> lin Det {s=\\_,_ => s; n=Sg} ; mkCard : Str -> Card = \s -> lin Card {s=s; n=Pl} ; mkACard : Str -> ACard = \s -> lin ACard {s=s; n=Pl} ; mkConj : Str -> Conj = \s -> lin Conj {s=s; n=Pl} ; mkPConj : Str -> PConj = \s -> lin PConj {s=s} ; mkVoc : Str -> Voc = \s -> lin Voc {s=s} ; mkLN : Str -> LN = \s -> lin LN {s=caseTable s; g=Neuter; n=Sg} ; mkGN : Str -> GN = \s -> lin GN {s=s; g=Masc} ; mkSN : Str -> SN = \s -> lin SN {s=s} ; mkPN : Str -> PN = \s -> lin PN {s=caseTable s; g=Masc; n=Sg} ; }