From 40dcf1c0d6896f65aa8e26509b6fd3a85c53e7fb Mon Sep 17 00:00:00 2001
From: janna <janna@cs.chalmer.se[D[D>
Date: Fri, 26 May 2006 09:59:30 +0000
Subject: [PATCH] russian3

---
 lib/resource-1.0/russian/CatRus.gf        |  13 +-
 lib/resource-1.0/russian/ExtRus.gf        |  28 -
 lib/resource-1.0/russian/IdiomRus.gf      |   7 +
 lib/resource-1.0/russian/LangRus.gf       |   7 +-
 lib/resource-1.0/russian/LexiconRus.gf    | 805 +++++++++++-----------
 lib/resource-1.0/russian/MorphoRus.gf     |  87 ++-
 lib/resource-1.0/russian/NounRus.gf       |  34 +-
 lib/resource-1.0/russian/ResRus.gf        | 338 +--------
 lib/resource-1.0/russian/SentenceRus.gf   |   6 +-
 lib/resource-1.0/russian/StructuralRus.gf |  26 +-
 lib/resource-1.0/russian/VerbRus.gf       |   6 +-
 11 files changed, 531 insertions(+), 826 deletions(-)
 delete mode 100644 lib/resource-1.0/russian/ExtRus.gf

diff --git a/lib/resource-1.0/russian/CatRus.gf b/lib/resource-1.0/russian/CatRus.gf
index f23d8625b..4c6b8bcbd 100644
--- a/lib/resource-1.0/russian/CatRus.gf
+++ b/lib/resource-1.0/russian/CatRus.gf
@@ -6,9 +6,14 @@ concrete CatRus of Cat = CommonX ** open ResRus, Prelude in {
 
   lincat
 
+-- Phrase
+
+    Utt, Voc = {s : Str} ;
+
 -- Tensed/Untensed
 
    S  = {s : Str} ;
+   SC  = {s : Str} ;
    QS = {s :                 QForm => Str} ;
    RS = {s :                   GenNum => Case => Animacy => Str} ;
 
@@ -23,7 +28,7 @@ concrete CatRus of Cat = CommonX ** open ResRus, Prelude in {
     QCl = {s :Polarity => ClForm => QForm => Str};  
     IP = { s : PronForm => Str ; n : Number ; p : Person ;
            g: PronGen ; anim : Animacy ;  pron: Bool} ;     
-    IComp = {s : Str} ;    
+    IAdv, IComp = {s : Str} ;    
     IDet = Adjective ** {n: Number; g: PronGen; c: Case} ; 
 
 -- Relative
@@ -60,6 +65,10 @@ concrete CatRus of Cat = CommonX ** open ResRus, Prelude in {
     QuantSg, QuantPl , Det = {s : AdjForm => Str; n: Number; g: PronGen; c: Case} ; 
     Predet, Quant= {s : AdjForm => Str; g: PronGen; c: Case} ; 
 
+-- Adverb
+
+    Adv, AdV, AdA, AdS, AdN = {s : Str} ;
+
 -- Numeral
 
     Num, Numeral = {s : Case => Gender => Str} ;
@@ -71,6 +80,8 @@ concrete CatRus of Cat = CommonX ** open ResRus, Prelude in {
 
     Conj = {s : Str ; n : Number} ;  
     DConj = {s1,s2 : Str ; n : Number} ; 
+    PConj = {s : Str} ;    
+    CAdv = {s : Str} ;    
     Subj = {s : Str} ;
     Prep = {s : Str ; c: Case } ;
 
diff --git a/lib/resource-1.0/russian/ExtRus.gf b/lib/resource-1.0/russian/ExtRus.gf
deleted file mode 100644
index eb9d9caa2..000000000
--- a/lib/resource-1.0/russian/ExtRus.gf
+++ /dev/null
@@ -1,28 +0,0 @@
---# -path=.:../abstract:../common:../../prelude
-
-concrete ExtRus of ExtRusAbs = CatRus ** open ResRus in {
---
---  lincat
---
---    Aux = {s : Polarity => Str} ;
---    
---  lin
--- 
---    PredAux np aux vp = mkClause (np.s ! Nom) np.a {
---      s = \\t,ant,b,ord,agr => 
---        let 
---          fin  = aux.s ! b ;
---          vf : Str -> Str -> {fin, inf : Str} = \x,y -> 
---            {fin = x ; inf = y} ;
---        in
---        case ant of {
---          Simul => vf fin [] ;
---          Anter => vf fin "have"
---          } ;
---      s2 = \\agr => infVP vp agr
---      } ;
---
---    can_Aux  = {s = \\p => posneg p "can"} ; ---- cannt
---    must_Aux = {s = \\p => posneg p "must"} ;
---
-}
diff --git a/lib/resource-1.0/russian/IdiomRus.gf b/lib/resource-1.0/russian/IdiomRus.gf
index 5ebc56691..451e9aca7 100644
--- a/lib/resource-1.0/russian/IdiomRus.gf
+++ b/lib/resource-1.0/russian/IdiomRus.gf
@@ -14,6 +14,13 @@ concrete IdiomRus of Idiom = CatRus ** open Prelude, ResRus, MorphoRus in {
        }
 } ;
 
+    ExistIP Kto =
+    let {  kto = Kto.s ! (PF Nom No NonPoss) } in 
+       {s =  \\b,clf,_ => case b of 
+        {Pos =>  kto ++ verbByut.s ! (getActVerbForm clf (pgen2gen Kto.g) Sg P3) ;
+        Neg => kto ++ "не" ++ verbByut.s ! (getActVerbForm clf (pgen2gen Kto.g) Sg P3) 
+       }
+    } ;
 
     ImpersCl vp = {s= \\ b, clf =>  let ne= case b of {Pos =>[]; Neg =>""}
       in 
diff --git a/lib/resource-1.0/russian/LangRus.gf b/lib/resource-1.0/russian/LangRus.gf
index b8415b5c4..a91740233 100644
--- a/lib/resource-1.0/russian/LangRus.gf
+++ b/lib/resource-1.0/russian/LangRus.gf
@@ -1,14 +1,12 @@
 --# -path=.:../abstract:../common:../../prelude
 
 concrete LangRus of Lang = 
-
   NounRus, 
   VerbRus, 
   AdjectiveRus,
   AdverbRus,
   NumeralRus,
   SentenceRus,
-
   QuestionRus,
   RelativeRus,
   ConjunctionRus,
@@ -16,7 +14,4 @@ concrete LangRus of Lang =
   TextX,
   StructuralRus,
   IdiomRus,
-
-  LexiconRus 
-
-** { flags  startcat = Phr ; unlexer = text ; lexer = text ;} ;
+  LexiconRus ** { flags  startcat = Phr ; unlexer = text ; lexer = text ;} ;
diff --git a/lib/resource-1.0/russian/LexiconRus.gf b/lib/resource-1.0/russian/LexiconRus.gf
index cc1e26b8c..2958b9b6e 100644
--- a/lib/resource-1.0/russian/LexiconRus.gf
+++ b/lib/resource-1.0/russian/LexiconRus.gf
@@ -1,402 +1,403 @@
---# -path=.:../abstract:../common:../../prelude
-
-concrete LexiconRus of Lexicon = CatRus ** open ParadigmsRus, Prelude, MorphoRus in {
-
-flags 
-  optimize=values ;
-  coding=utf8 ;
-lin
-  airplane_N = nTelefon "самолет" ;
-  answer_V2S = tvDir (mkRegVerb imperfective  first "о�веч�°" "ю" "о�вечал" "о�вечай" "о�веча�ь" );
-  apartment_N = nMashina "квар�и�" ;
-  apple_N = nChislo "яблок" ; 
-  art_N = nChislo "и�к�с�тв" ;
-  ask_V2Q = tvDir (mkRegVerb imperfective  first "спра�ива" "ю" "спра�ива�»" "спра�ива�¹" "спра�иват�") ;
-  baby_N = nMalush "малы�";
-  bad_A = AKakoj_Nibud  "плох" "" "х�же";
-  bank_N = nBank "бан�º" ;
-  beautiful_A =  AStaruyj "к�а�ив" "к�а�иве�µ";
-  become_VA = mkRegVerb perfective second "с�ано�²" "л�" "с�ал" "с�ань" "с�а�ь" ;
-  beer_N = nChislo "пив" ;
-  beg_V2V = tvDir (mkRegVerb imperfective  second "п��¾" "ш�" "п�о�ил" "п�о��¸" "п�о�и�ь" );
-  big_A = AKakoj_Nibud  "боль�" "" "боль��µ" ;
-  bike_N = nTelefon "вело�ипе�´" ;
-  bird_N = nEdinica "п�и�" ;
-  black_A = AStaruyj  "ч�рн" "чернее";
-  blue_A =  AMolodoj  "голуб" "голубе�µ";
-  boat_N = nMashina "лод�º" ;
-  book_N = nMashina "кни�³" ;
-  boot_N = nBank "сапог" ;
-  boss_N = nStomatolog "начальник" ;
-  boy_N = nStomatolog "маль�ик" ;
-  bread_N = nAdres "хле�±" ;
-  break_V2 = tvDir (mkRegVerb imperfective first "п�е�ыва" "ю" "п�е�ыва�»" "п�е�ыва�¹" "п�е�ыват�" );
-  broad_A = AMalenkij  "широк" "шир�µ";
-  brother_N2 = mkN2  (nBrat ",б�а�") ;
-  brown_A = AStaruyj  "кори�нев" "кори�невее";
-  butter_N = nChislo "мас�»";
-  buy_V2 = tvDir (mkRegVerb imperfective first "покупа" "ю" "покупа�»" "покупа�¹" "покупат�" );
-  camera_N = nMashina "kamer" ;
-  cap_N = nNoga "чаш�º" ; -- чаш-ек Pl-Gen
-  car_N = nMashina "машин" ;
-  carpet_N =  mkN "ковё�" "ковра" "ковр�" "ковё�" "ковром" "ковре" "ковр�" "ковров" "коврам" "ковр�" "коврам�¸" "коврах" masculine inanimate;
-  cat_N = nMashina "кош�º" ;
-ceiling_N =  nPotolok "потол" ; 
-  chair_N = nStul "с�ул"  ;
-cheese_N = nTelefon "с�р" ;
-child_N = mkN "ребёно�º" "ребёнк�°" "ребёнку" "ребёнк�°" "ребёнком" "ребёнк�µ" "дет�¸"  "детей" "детям" "детей" "детьми"  "детя�" masculine animate ;
-  church_N = mkN "церковь" "церкви" "церкви" "церковь" "церковь�" "церкви" "церкви" "церкве�¹" "церквя�¼" "церкви" "церквями" "церквях" masculine inanimate;
-  city_N = nAdres "город" ;
-  clean_A =  AStaruyj  "чист" "чищ�µ"; 
-  clever_A =  AStaruyj "умн" "умнее";
-  close_V2= tvDir (mkRegVerb imperfective first "закр�ва" "ю" "закр�вал" "закр�вай" "закр�вать" );
-  coat_N = mkIndeclinableNoun "паль��¾" masculine inanimate ;
-  cold_A =  AStaruyj  "холодн" "холоднее";
-  come_V = mkRegVerb imperfective first "п�и��¾" "ж�" "п�и�оди�»" "п�и�оди" "п�и�одит�" ;
-  computer_N = nTelefon  "комп�ю�е�" ;
-  country_N = nMashina "с�ран" ;
-cousin_N = nTelefon "к�зен" ;
-cow_N = nMashina "коров" ;
-die_V = mkRegVerb imperfective first "умира" "ю" "умирал" "умрай" "умирать" ;
-dirty_A =  AStaruyj  "г�язн" "г�язнее" ;
-doctor_N = nAdres "доктор" ;
-dog_N = nNoga "собак" ;
-door_N = nBol "двер" ;
-drink_V2 = tvDir (mkRegVerb imperfective firstE "п�" "ю" "пил" "пей" "пить" );
-eat_V2 = tvDir (mkRegVerb imperfective first "к�ша" "ю" "к�шал" "к�шай" "к�шать" );
-enemy_N = nStomatolog "в�аг" ;
-factory_N = nNoga "фабрик" ;
-father_N2 = mkN2 (mkN "о�е�" "о�ца" "о�ц�" "о�ца" "о�цом" "о�це" "о�ц�" "о�цов" "о�цам" "о�цов" "о�цам�¸" "о�цах" masculine animate);
-fear_VS= mkRegVerb imperfective second "бо" "ю" "боя�»" "бой" "боят�" ;
-find_V2 = tvDir (mkRegVerb imperfective second "нах�¾" "ж�" "находи�»" "находи" "находит�" );
-fish_N = nMashina "р��±" ;
-floor_N = nTelefon "пол" ;
-forget_V2= tvDir (mkRegVerb imperfective first "забыва" "ю" "забыва�»" "забыва�¹" "забыват�" );
-fridge_N = nBank "холодил�ник" ;
-friend_N = mkN "д�уг" "д�уга" "д�угу" "д�уга" "д�уго�¼" "д�уге" "д�узья" "д�узе�¹" "д�узьям" "д�узе�¹" "д�з�ями" "д�узья�" masculine animate;
-fruit_N = nTelefon "ф�укт" ;
-garden_N = nTelefon  "сад" ;
-girl_N = nNoga "дево��º" ;
-glove_N = nNoga "перчат�º" ;
-gold_N = nChislo "золо�" ;
-good_A = AKhoroshij "хоро�" "л�ч��µ" ; 
-go_V= mkRegVerb imperfective second "хо" "ж�" "ходил" "ход�¸" "ходи�ь" ;
-green_A = AStaruyj  "зелен" "зелене�µ" ;
-harbour_N = nTelefon "залив" ;
-hate_V2= tvDir (mkRegVerb imperfective second "ненави" "ж�" "ненавидел" "ненавид�" "ненавидеть" );
-hat_N = nMashina "шля�¿" ;
-have_V2= tvDir (mkRegVerb imperfective first "име" "ю" "име�»" "име�¹" "имет�" );
-hear_V2= tvDir (mkRegVerb imperfective first "слуша" "ю" "слушал" "слушай" "слушать" );
-hill_N = nTelefon  "хол�¼" ;
-hope_VS= mkRegVerb imperfective first "над�µ" "ю" "наде��»" "надей" "наде�т�" ;
-horse_N = nBol "лошад" ;
-hot_A = AKhoroshij "горя�" "горя�ее" ;
-house_N = nAdres "дом" ;
-important_A = AStaruyj  "важ�½" "важнее" ;
-industry_N = nChislo "п�оизводс��²" ;
-iron_N = nChislo "желез" ;
-king_N = mkN "король" "короля" "королю" "короля" "короле�¼" "короле" "короли" "короле�¹" "короля�¼" "короле�¹" "королями" "королях" masculine animate;
-know_V2= tvDir (mkRegVerb imperfective first "зна" "ю" "зна�»" "зна�¹" "знат�" );
-lake_N = nChislo "озер" ;
-lamp_N = nMashina "лам�¿" ;
-learn_V2= tvDir (mkRegVerb imperfective second "у�" "у" "у�ил" "у��¸" "у�и�ь" );
-leather_N = nEdinica "кож" ;
-leave_V2= tvDir (mkRegVerb imperfective second "у�ож" "у" "у�оди�»" "у�оди" "у�одит�" );
-like_V2= tvDir (mkRegVerb imperfective second "н�ав" "л�" "н�ави�»" "н�авь" "н�авит�" );
-listen_V2= tvDir (mkRegVerb imperfective first "слуша" "ю" "слушал" "слушай" "слушать" );
-live_V= mkRegVerb imperfective firstE "жив" "у" "жил" "жив�¸" "жить" ;
-long_A = AStaruyj  "длинн" "длинне�µ" ;
-lose_V2 = tvDir (mkRegVerb imperfective first "теря" "ю" "терял" "теряй" "теря�ь" );
-love_N = nBol "л�бов" ;
-love_V2= tvDir (mkRegVerb imperfective second "л��±" "л�" "л�бил" "л�би" "л�бить" );
-man_N = nStomatolog "челове�º" ;
-meat_N =nChislo "м�с" ;
-milk_N = nChislo "молок" ;
-moon_N = nMashina  "л��½" ;
-mother_N2 = mkN2 ( nMashina "мам") ;
-mountain_N = nMashina "гор" ;
-music_N = nNoga "м�з��º" ;
-narrow_A =  AStaruyj  "узк" "уже" ;
-new_A =  AStaruyj  "нов" "новее" ;
-newspaper_N = nMashina "газе�" ;
-oil_N = nBol "нефт�" ;
-old_A =  AStaruyj  "с�а�" "с�а�ше" ;
-open_V2= tvDir (mkRegVerb imperfective first "о�к�ыва" "ю" "о�к�ыва�»" "о�к�ыва�¹" "о�к�ыват�" );
-paper_N = nNoga "б�маг" ;
-peace_N = nTelefon "мир" ;
-pen_N = nNoga "р�чк" ;
-planet_N = nMashina "планет" ;
-plastic_N = nMashina "плас�масс" ;
-play_V2 = tvDir (mkRegVerb imperfective first "игр�°" "ю" "играл" "играй" "игра�ь" );
-policeman_N = nTelefon "мили�ионе�" ;
-priest_N = nStomatolog "священник" ;
-queen_N = nMashina "короле�²" ;
-radio_N = mkIndeclinableNoun "радио" neuter inanimate;
-read_V2 = tvDir (mkRegVerb imperfective first "чит�°" "ю" "читал" "читай" "чита�ь" );
-red_A =  AStaruyj  "к�а��½" "к�а�нее" ;
-religion_N = nMalyariya "религи" ;
-restaurant_N = nTelefon "ресторан" ;
-river_N = nNoga "рек" ;
-rock_N = nUroven "кам" ;
-roof_N = nEdinica "к�ы�" ;
-rubber_N = nMashina "резин" ;
-run_V = mkRegVerb imperfective first "бег�°" "ю" "бегал" "бегай" "бега�ь" ;
-say_VS = mkRegVerb imperfective second "гово�" "ю" "гово�ил" "гово��¸" "гово�и�ь" ;
-school_N = nMashina "шко�»" ;
-science_N = nEdinica "нау�º" ;
-sea_N = nProizvedenie "мор" ;
-seek_V2 = tvDir (mkRegVerb imperfective first "и�" "у" "и�кал" "и��¸" "и�кать" );
-see_V2 = tvDir (mkRegVerb imperfective second "виж" "у" "видел" "видь" "виде�ь" );
-sell_V3 = tvDirDir (mkRegVerb imperfective firstE "п�ода" "ю" "п�одавал" "п�одавай" "п�одавать" );
-send_V3 = tvDirDir (mkRegVerb imperfective first "посыла" "ю" "посыла�»" "посыла�¹" "посылат�" );
-sheep_N = nMashina "овц" ;
-ship_N = nNol "корабл" ;
-shirt_N = nNoga "р�баш�º" ;
-shoe_N =  mkN "т�фля" "т�фли" "т�фле" "т�флю" "т�фле�¹" "т�фле" "т�фли" "т�фель" "т�фля�¼" "т�фли" "т�флями" "т�флях" masculine inanimate;
-shop_N = nTelefon "магази�½" ;
-short_A = AMalenkij  "коро��º" "коро��µ" ;
-silver_N = nChislo "серебр" ;
-sister_N = nMashina "сест�" ;
-sleep_V = mkRegVerb imperfective second "сп" "л�" "спа�»" "спи" "спат�" ;
-small_A = AMalenkij  "малень�º" "мень��µ" ;
-snake_N = nTetya"зме" ;
-sock_N = nPotolok "нос" ;
-speak_V2 = tvDir (mkRegVerb imperfective second "гово�" "ю" "гово�ил" "гово��¸" "гово�и�ь" );
-star_N = nMashina "звезд" ;
-steel_N = nBol "с�ал" ;
-stone_N = nNol "камен" ;
-stove_N = nBol "печ" ;
-student_N = nTelefon "с�уден�" ;
-stupid_A =  AMolodoj  "т�пой" "т�пее" ;
-sun_N =  mkN "солн��µ" "солн��°" "солн�у" "солн��µ" "солн�ем" "солн��µ" "солн��°" "солн�" "солн�ам" "солн��°" "солн�ами" "солн�а�" neuter inanimate;
-switch8off_V2 = tvDir (mkRegVerb imperfective first "в�ключа" "ю" "в�ключал" "в�ключай" "в�ключать") ;
-switch8on_V2 = tvDir (mkRegVerb imperfective first "вклю��°" "ю" "вклю�ал" "вклю�ай" "вклю�а�ь") ;
-table_N = nTelefon "с�ол" ;
-teacher_N = nNol "у�и�ел" ;
-teach_V2 = tvDir (mkRegVerb imperfective second "у�" "у" "у�ил" "у��¸" "у�и�ь" );
-television_N = nProizvedenie "телевиден�¸" ;
-thick_A = AStaruyj  "толс�" "толще" ;
-thin_A = AMalenkij  "тон�º" "тонь��µ" ;
-train_N = nAdres "поезд" ;
-travel_V = mkRegVerb imperfective first "п�теше�тву" "ю" "п�теше�твовал" "п�теше�тву�¹" "п�теше�твовать" ;
-tree_N = nChislo "дерев" ;
---trousers_N =  mkN "" "" "" "" "" "" "ш�аны" "ш�ано�²" "ш�ана�¼" "ш�аны" "ш�анами" "ш�анах" masculine inanimate;
-ugly_A = AStaruyj  "некрасив" "некрасиве�µ" ;
-understand_V2 = tvDir (mkRegVerb imperfective first "понима" "ю" "понима�»" "понима�¹" "понимат�" );
-university_N = nTelefon "университе�" ;
-village_N = nMalyariya "деревн" ;
-wait_V2 = tvDir (mkRegVerb imperfective firstE "жд" "у" "жда�»" "жди" "ждат�" );
-walk_V = mkRegVerb imperfective first "г�л�" "ю" "г�л��»" "г�л��¹" "г�л�т�" ;
-warm_A = AStaruyj  "т�пл" "теплее" ;
-war_N = nMashina "вой�½" ;
-watch_V2 = tvDir (mkRegVerb imperfective second "смот�" "ю" "смот�ел" "смот��¸" "смот�е�ь" );
-water_N = nMashina "вод" ;
-white_A = AStaruyj  "бел" "белее" ;
-window_N = nChislo "окн" ;
-wine_N = nChislo "вин" ;
-win_V2 = tvDir (mkRegVerb imperfective first "в�игрыва" "ю" "в�игрыва�»" "в�игрыва�¹" "в�игрыват�" );
-woman_N = nZhenchina "женщин" ;
-wood_N = nChislo "дерев" ;
-write_V2 = tvDir (mkRegVerb imperfective first "пиш" "у" "писал" "пиш�¸" "писа�ь" );
-yellow_A = AStaruyj  "ж�л�" "желтее" ;
-young_A = AMolodoj  "молод" "моложе";
-
-  do_V2 = tvDir (mkRegVerb imperfective first "дел�°" "ю" "делал" "делай" "дела�ь" );
-  now_Adv  = mkAdv "сейчас" ;
-  already_Adv  = mkAdv "уже" ;
-  song_N =  nTetya "пес�½" ;
-  add_V3 = mkV3 (mkRegVerb imperfective first "складыва" "ю" "складывал" "складывай" "складывать" ) "" "�²" accusative accusative;
-  number_N  = nChislo  "чис�»" ;
-  put_V2 = tvDir (mkRegVerb imperfective firstE "кла�´" "у" "кла�»" "клади" "клас�ь" );
-  stop_V = mkRegVerb imperfective first "о�танавлива" "ю" "о�танавлива�»" "о�танавлива�¹" "о�танавливат�";
-  jump_V = mkRegVerb imperfective first "п�ыга" "ю" "п�ыга�»" "п�ыга�¹" "п�ыгат�" ;
-
----- distance_N3 = mkN3 (nProizvedenie "расс�о��½") from_Prep to_Prep ;
-
--- in Russian combinations with verbs are expressed with adverbs:
--- "легко поня�ь" ("easy to understand"), which is different from 
--- adjective expression "легкий для понимания" ("easy for understanding")
--- So the next to words are adjectives, since there are such adjectives
--- in Russian, but to use them with verb would be wrong in Russian:
-fun_AV = AStaruyj "весёл" "веселе�µ";
-easy_A2V = mkA2 (AMalenkij "лег�º" "легче") "для" genitive ;
-
-empty_A =  AMolodoj "п�с�" "п�с�ее";
-married_A2 = mkA2 (adjInvar "замуже�¼") "за" instructive ;
-paint_V2A = tvDir (mkRegVerb imperfective first "рису" "ю" "рисова�»" "рисуй"  "рисоват�" ) ;
-  probable_AS = AStaruyj "возможн��¹" "возможнее";
---  rain_V0  No such verb in Russian!
-talk_V3 = mkV3 (mkRegVerb imperfective second "гово�" "ю" "гово�ил" "гово��¸" "гово�и�ь" ) "с" "�¾" instructive prepositional;
-wonder_VQ = mkRegVerb imperfective first "инте�е�у" "ю" "инте�е�ова�»" "инте�е�уй" "инте�е�оват�";  
-
-    -- Nouns
-
-    animal_N = nZhivotnoe "живо��½" ;
-    ashes_N = nPepel "пеп" ;
-    back_N = nMashina "спи�½" ;
-    bark_N = mkN "лай" "лая" "лаю" "лай" "лае�¼" "лае" "лаи" "лае�²" "лая�¼" "лаи" "лаями" "лаях" masculine inanimate;
-    belly_N = nTelefon "живо�" ;
-    bird_N = nEdinica "п�и�" ;
-    blood_N = nBol "к�ов" ;
-    bone_N = nBol "кост" ;
-    breast_N = nBol "г�удь" ;
-    
-    cloud_N = nChislo "облак" ;
-    day_N = mkN "день" "дня" "дню" "день" "днё�¼" "дне" "дни" "дне�¹" "дня�¼" "дни" "днями" "днях" masculine inanimate ;
-
-    dust_N = nBol "п��»" ;
-   ear_N = nChislo "у��¾" ;
-   earth_N = nTetya "зем�»" ;
-    egg_N = nChislo "яйц" ;
-    eye_N = nAdres "гла�·" ;
-    fat_N = nBank "жир" ;
-
---    father_N = UseN2 father_N2 ;
-    feather_N = mkN "пер�¾" "пер�°" "перу" "пер�°" "пером" "пер�µ" "перь�" "перьев" "перь��¼" "перьев" "перь�ми" "перь�х" neuter inanimate ;
-   fingernail_N = mkN "ного�ь" "ногт�" "ногт�" "ногт�" "ногтем" "ногте" "ногти" "ногтей" "ногт��¼" "ногтей" "ногт�ми" "ногт�х" masculine inanimate ;
-    fire_N = mkN "огон�" "огня" "огню" "огня" "огнём" "огн�µ" "огн�¸" "огней" "огням" "огней" "огнями" "огня�" masculine inanimate ;
-    fish_N = nMashina "р��±" ;
-    flower_N = mkN "о�е�" "о�ца" "о�ц�" "о�ца" "о�цом" "о�це" "о�ц�" "о�цов" "о�цам" "о�цов" "о�цам�¸" "о�цах" masculine animate ;
-    fog_N = nTelefon "т�ман" ;
-    foot_N = nTetya "с�упн" ;
-    forest_N = nAdres "лес" ;
-    fruit_N = nTelefon "ф�укт";
-    grass_N = nMashina "т�ав" ;
-    guts_N =  nBol "внут�енно�т" ;
-    hair_N = nTelefon "воло�" ;
-   hand_N =  nNoga "р��º" ;
-   head_N = nMashina "голов" ;
-   heart_N = mkN "серд��µ" "серд��°" "серд�у" "серд��°" "серд�ем" "серд��µ" "серд��°" "сердец" "серд�ам" "сердец" "серд�ами" "серд�а�" neuter inanimate;
-   horn_N = nAdres "рог" ;
-   husband_N = mkN "м��¶" "м�жа" "м�ж�" "м�жа" "м�жем" "м�же" "м�ж�я" "м�жей" "м�ж�ям" "м�жей" "м�ж�ями" "м�ж�я�" masculine animate ;
-   ice_N = mkN "л��´" "л�да" "л�д�" "л�да" "л�дом" "л�де" "л�д�" "л�дов" "л�дам" "л�дов" "л�дам�¸" "л�дах" masculine inanimate ;
-   knee_N = mkN "колено" "колена" "колену" "колена" "колено�¼" "колене" "колени" "колен" "колена�¼" "колен" "коленями" "коленях" neuter inanimate ;
-    lake_N = nChislo "озер" ;
-   leaf_N = nStul "лист" ;
-   leg_N = nNoga "ног" ;
-  liver_N = nBol "печен" ;
-  louse_N = mkN "вошь" "в��¸" "в��¸" "вошь" "вошь�" "в��µ" "в��¸" "в�ей" "в�ам" "в�ей" "в�ами" "в�а�" feminine animate ;
-   
-    meat_N = nChislo "м�с" ;
-    moon_N = nMashina "л��½" ;
-    
-
-    mountain_N = nMashina "гор" ;
-   mouth_N =  mkN "рот" "р��°" "р�у" "рот" "р�ом" "р��µ" "р�ы" "р�ов" "р�ам" "р�ы" "р�ами" "р�а�" masculine inanimate;
-  name_N = mkN "имя" "имени" "имени" "имя" "именем" "имени" "имена" "имё�½" "именам" "имена" "именам�¸" "именах" neuter inanimate;
-  neck_N = nTetya "ше"  ;
-  night_N = nBol "ноч" ;
-  nose_N = nTelefon "нос" ;
-  person_N = nBol "личност�" ;
-  rain_N = nNol "дож�´" ;
-   
-  road_N = nNoga "дорог" ;
-   root_N = nUroven "кор" ;
-   rope_N =  nNoga "веревк" ;
-   salt_N = nBol "сол" ;
-   sand_N = mkN "песок" "песка" "песк�" "песок" "песком" "песке" "пески" "песков" "пескам" "песков" "пескам�¸" "песках" masculine inanimate ;
-    sea_N = nProizvedenie "мор" ;
-    seed_N = mkN "семя" "семени" "семени�¸" "семя" "семене�¼" "семени" "семена" "семян" "семена�¼" "семена" "семенами" "семенах" neuter inanimate ;
-   skin_N =  nEdinica "кож" ;
-   sky_N = mkN "неб�¾" "неб�°" "небу" "неб�¾" "небом" "неб�µ" "небе��°" "небе�" "небе�ам" "небе�" "небе�ами" "небе�а�" neuter inanimate ; 
-   smoke_N =  nTelefon "д��¼" ;
-    snake_N = nTetya "зме" ;
-   snow_N = nAdres "сне�³" ;
-    star_N = nMashina "звезд" ;
-    stick_N = nNoga "пал�º" ;
-
-    
-   tail_N = nTelefon "хвос�" ;
-   tongue_N = nBank "язы�º" ;
-   tooth_N = nTelefon "з��±" ;
-    tree_N = nChislo "дерев" ;
-    water_N = nMashina "вод" ;
-    wife_N = nMashina "жен" ;
-    wind_N = mkN "вете�" "ветра" "ветр�" "вете�" "ветром" "ветра" "ветров" "ветра" "ветрам" "ветров" "ветрам�¸" "ветрах" masculine inanimate ;
-    wing_N = mkN "к�ыло" "к�ыла" "к�ылу" "к�ыло" "к�ыло�¼" "к�ыле" "к�ылья" "к�ыльев" "к�ыльям" "к�ылья" "к�ыльями" "к�ылья�" neuter inanimate ;
-    
-   worm_N = nNol "чер�²" ;
-   year_N = nAdres "год" ;
-
-
--- Verbs
-
-    bite_V2 = tvDir (mkRegVerb imperfective  first "к�са" "ю" "к�сал" "к�сай" "к�сать");
-    blow_V = mkRegVerb imperfective  first "д�" "ю" "д��»" "д��¹" "д�т�"  ;
-   breathe_V = mkRegVerb imperfective  second "д�ш" "у" "д�шал" "д�ши" "д�шать"  ;
-   burn_V = mkRegVerb imperfective  second "гор" "ю" "горел" "гор�¸" "горе�ь"  ;
-   count_V2 = tvDir (mkRegVerb imperfective  first "с�и��°" "ю" "с�и�ал" "с�и�ай" "с�и�а�ь"  ) ;
-    cut_V2 = tvDir (mkRegVerb imperfective  first "реж" "у" "резал" "режь" "реза�ь" ) ;
-    dig_V = mkRegVerb imperfective  first "коп�°" "ю" "копал" "копай" "копа�ь"  ;
-   
-    
-    fall_V = mkRegVerb imperfective  first "пад�°" "ю" "падал" "падай" "пада�ь"  ;
-    
-    fight_V2 = tvDir (mkRegVerb imperfective  firstE "дер" "у" "д�ал" "дер�¸" "д�а�ь" ) ;
-    float_V = mkRegVerb imperfective  firstE "плы�²" "у" "плы�»" "плыви" "плыт�"  ;
-    flow_V = mkRegVerb imperfective  firstE "тек" "у" "т��º" "тек�¸" "течь"  ;
-    fly_V = mkRegVerb imperfective  second "лет�°" "ю" "летал" "летай" "лета�ь"  ;
-    freeze_V = mkRegVerb imperfective  first "заме�за" "ю" "заме�зал" "заме�зай" "заме�зать"  ;
-    give_V3 = tvDirDir (mkRegVerb imperfective  firstE "да" "ю" "давал" "давай" "дава�ь" ) ;
-    
-    hit_V2 = tvDir (mkRegVerb imperfective  first "удар�" "ю" "удар��»" "удар��¹" "удар�т�"  );
-    hold_V2 = tvDir (mkRegVerb imperfective  second "дер�¶" "у" "держал" "держи" "держать"  );
-    hunt_V2 = tvDir (mkRegVerb imperfective  second "о�о�" "у" "о�о�ил" "о�о�ь" "о�о�и�ь" ) ;
-    kill_V2 = tvDir (mkRegVerb imperfective  first "убива" "ю" "убивал" "убивай" "убивать" ) ;
-    
-    laugh_V = mkRegVerb imperfective  firstE "сме" "ю" "смеял" "сме�¹" "смея�ь"  ;
-    lie_V = mkRegVerb imperfective  firstE "лг" "у" "лга�»" "лги" "лгат�"  ;
-    play_V = mkRegVerb imperfective  first "игр�°" "ю" "играл" "играй" "игра�ь"  ;
-    pull_V2 = tvDir (mkRegVerb imperfective  first "т��½" "у" "т�н��»" "т�ни" "т�н�т�" ) ;
-    push_V2 = tvDir (mkRegVerb imperfective  first "толка" "ю" "толкал" "толкай" "толкать"  );
-    rub_V2 = tvDir (mkRegVerb imperfective  firstE "т�" "у" "т�р" "т��¸" "тере�ь"  );
-    
-    scratch_V2 = tvDir (mkRegVerb imperfective  first "чеш" "у" "чесал" "чеш�¸" "чеса�ь" ) ;    
-
-    sew_V = mkRegVerb imperfective  firstE "ш�" "ю" "шил" "шей" "шить"  ;
-    sing_V = mkRegVerb imperfective  firstE "по" "ю" "пел" "пой" "петь"  ;
-    sit_V = mkVerbum imperfective  "сижу" "сиди�ь" "сиди�" "сидим" "сиди��µ" "сидя�" "сидел" "сид�¸" "сиде�ь"  ;
-    smell_V = mkRegVerb imperfective  first "пах�½" "у" "пахн��»" "пахни" "пахн�т�"  ;
-    spit_V = mkRegVerb imperfective  firstE "плю" "ю" "плевал" "плю�¹" "плевать"  ;
-    split_V2 = tvDir (mkRegVerb imperfective  first "разбив�°" "ю" "разбивал" "разбей" "разбива�ь" ) ;
-    squeeze_V2 = tvDir (mkRegVerb imperfective  first "сжима" "ю" "сжимал" "сжимай" "сжимать" ) ;
-    stab_V2 = tvDir (mkRegVerb imperfective  first "кол" "ю" "колол" "кол�¸" "коло�ь" ) ;
-    stand_V = mkRegVerb imperfective second "с��¾" "ю" "с�о��»" "с�ой" "с�о�т�"  ;
-    suck_V2 = tvDir (mkRegVerb imperfective  firstE "сос" "у" "сосал" "сос�¸" "соса�ь")  ;
-    swell_V = mkRegVerb imperfective  first "опуха" "ю" "опухал" "опухай" "опухать"  ;
-    swim_V = mkRegVerb imperfective  first "плава" "ю" "плавал" "плавай" "плавать"  ;
-    think_V = mkRegVerb imperfective  first "д�ма" "ю" "д�мал" "д�май" "д�мать"  ;
-    throw_V2 = tvDir (mkRegVerb imperfective  first "б�о��°" "ю" "б�о�ал" "б�о�ай" "б�о�а�ь" ) ;
-    tie_V2 = tvDir (mkRegVerb imperfective  first "в��¶" "у" "в�зал" "в�жи" "в�зать")  ;
-    turn_V = mkRegVerb imperfective  first "пово�а�ива" "ю" "пово�а�ива�»" "пово�а�ива�¹" "пово�а�иват�"  ;
-    vomit_V = mkRegVerb imperfective  firstE "рв" "у" "рва�»" "рви" "рват�"  ;
-    wash_V2 = tvDir (mkRegVerb imperfective  first "мо" "ю" "м��»" "мой" "м�т�" ) ;
-    wipe_V2 = tvDir (mkRegVerb imperfective  first "в�тир�°" "ю" "в�тирал" "в�тирай" "в�тира�ь"  );
-
-
-    correct_A = AStaruyj "п�авил��½" "п�авил�нее"; 
-    dry_A = AMolodoj "с�х" "с�ше";
-   
-    dull_A = AStaruyj "скучн" "скучне�µ";
-    far_Adv = mkAdv "далеко";
-    full_A = AStaruyj "пол�½" "полнее";
-    heavy_A = AStaruyj "т�жел" "т�желее";
-    left_Ord = (uy_j_EndDecl   "лев" ) ** {lock_A = <>}; 
-    near_A = AMalenkij "близк" "ближе";
-    right_Ord = (uy_j_EndDecl  "п�ав") ** {lock_A = <>} ;
-    rotten_A = AMolodoj "гни�»" "гнилее";
-    round_A = AStaruyj "к�угл" "к�углее";
-    sharp_A = AStaruyj "о�т�" "о�т�ее";
-    smooth_A = AMalenkij "гладк" "глаже";
-    straight_A = AMolodoj "п�ям" "п�яме�µ";
-    wet_A = AStaruyj "мокр" "мокрее";
-    wide_A = AMalenkij "широк" "шир�µ";
-
-fear_V2 =tvDir (mkRegVerb imperfective first "бо" "ю" "боя�»" "бой" "боят�" );
-
-paris_PN = mkPN   "Париж"  Masc  Inanimate ;
---rain_V0 Does not exist in Russian
-
-
-} 
-
+--# -path=.:../abstract:../common:../../prelude
+
+--
+concrete LexiconRus of Lexicon = CatRus ** 
+  open ParadigmsRus, Prelude, StructuralRus, MorphoRus in {
+--, IrregRus
+flags 
+  optimize=values ;
+  coding=utf8 ;
+lin
+  airplane_N = nTelefon "самолет" ;
+  answer_V2S = tvDir (mkRegVerb imperfective  first "отвеча" "ю" "отвечал" "отвечай" "отвечать" );
+  apartment_N = nMashina "квартир" ;
+  apple_N = nChislo "яблок" ; 
+  art_N = nChislo "искусств" ;
+  ask_V2Q = tvDir (mkRegVerb imperfective  first "спрашива" "ю" "спрашивал" "спрашивай" "спрашивать") ;
+  baby_N = nMalush "малыш";
+  bad_A = AKakoj_Nibud  "плох" "" "хуже";
+  bank_N = nBank "банк" ;
+  beautiful_A =  AStaruyj "красив" "красивее";
+  become_VA = mkRegVerb perfective second "станов" "лю" "стал" "стань" "стать" ;
+  beer_N = nChislo "пив" ;
+  beg_V2V = tvDir (mkRegVerb imperfective  second "про" "шу" "просил" "проси" "просить" );
+  big_A = AKakoj_Nibud  "больш" "" "больше" ;
+  bike_N = nTelefon "велосипед" ;
+  bird_N = nEdinica "птиц" ;
+  black_A = AStaruyj  "чёрн" "чернее";
+  blue_A =  AMolodoj  "голуб" "голубее";
+  boat_N = nMashina "лодк" ;
+  book_N = nMashina "книг" ;
+  boot_N = nBank "сапог" ;
+  boss_N = nStomatolog "начальник" ;
+  boy_N = nStomatolog "мальчик" ;
+  bread_N = nAdres "хлеб" ;
+  break_V2 = tvDir (mkRegVerb imperfective first "прерыва" "ю" "прерывал" "прерывай" "прерывать" );
+
  broad_A = AMalenkij  "широк" "шире";
+  brother_N2 = mkN2  (nBrat ",брат") ;
+  brown_A = AStaruyj  "коричнев" "коричневее";
+  butter_N = nChislo "масл";
+  buy_V2 = tvDir (mkRegVerb imperfective first "покупа" "ю" "покупал" "покупай" "покупать" );
+  camera_N = nMashina "kamer" ;
+  cap_N = nNoga "чашк" ; -- чаш-ек Pl-Gen
+  car_N = nMashina "машин" ;
+  carpet_N =  mkN "ковёр" "ковра" "ковру" "ковёр" "ковром" "ковре" "ковры" "ковров" "коврам" "ковры" "коврами" "коврах" masculine inanimate;
+  cat_N = nMashina "кошк" ;
+ceiling_N =  nPotolok "потол" ; 
+  chair_N = nStul "стул"  ;
+cheese_N = nTelefon "сыр" ;
+child_N = mkN "ребёнок" "ребёнка" "ребёнку" "ребёнка" "ребёнком" "ребёнке" "дети"  "детей" "детям" "детей" "детьми"  "детях" masculine animate ;
+  church_N = mkN "церковь" "церкви" "церкви" "церковь" "церковью" "церкви" "церкви" "церквей" "церквям" "церкви" "церквями" "церквях" masculine inanimate;
+  city_N = nAdres "город" ;

+  clean_A =  AStaruyj  "чист" "чище"; 
+  clever_A =  AStaruyj "умн" "умнее";
+  close_V2= tvDir (mkRegVerb imperfective first "закрыва" "ю" "закрывал" "закрывай" "закрывать" );
+  coat_N = mkIndeclinableNoun "пальто" masculine inanimate ;
+  cold_A =  AStaruyj  "холодн" "холоднее";
+  come_V = mkRegVerb imperfective first "прихо" "жу" "приходил" "приходи" "приходить" ;
+  computer_N = nTelefon  "компьютер" ;
+  country_N = nMashina "стран" ;
+cousin_N = nTelefon "кузен" ;
+cow_N = nMashina "коров" ;
+die_V = mkRegVerb imperfective first "умира" "ю" "умирал" "умрай" "умирать" ;
+dirty_A =  AStaruyj  "грязн" "грязнее" ;
+doctor_N = nAdres "доктор" ;
+dog_N = nNoga "собак" ;
+door_N = nBol "двер" ;
+drink_V2 = tvDir (mkRegVerb imperfective firstE "пь" "ю" "пил" "пей" "пить" );
+eat_V2 = tvDir (mkRegVerb imperfective first "куша" "ю" "кушал" "кушай" "кушать" );
+enemy_N = nStomatolog "враг" ;
+factory_N = nNoga "фабрик" ;
+father_N2 = mkN2 (mkN "отец" "отца" "отцу" "отца" "отцом" "отце" "отцы" "отцов" "отцам" "отцов" "отцами" "отцах" masculine animate);
+fear_VS= mkRegVerb imperfective second "бо" "ю" "боял" "бой" "боять" ;
+find_V2 = tvDir (mkRegVerb imperfective second "нахо" "жу" "находил" "находи" "находить" );
+fish_N = nMashina "рыб" ;
+floor_N = nTelefon "пол" ;
+forget_V2= tvDir (mkRegVerb imperfective first "забыва" "ю" "забывал" "забывай" "забывать" );
+fridge_N = nBank "холодильник" ;
+friend_N = mkN "друг" "друга" "другу" "друга" "другом" "друге" "друзья" "друзей" "друзьям" "друзей" "дузьями" "друзьях" masculine animate;
+fruit_N = nTelefon "фрукт" ;
+garden_N = nTelefon  "сад" ;
+girl_N = nNoga "девочк" ;
+glove_N = nNoga "перчатк" ;
+gold_N = nChislo "золот" ;
+good_A = AKhoroshij "хорош" "лучше" ; 
+go_V= mkRegVerb imperfective second "хо" "жу" "ходил" "ходи" "ходить" ;
+green_A = AStaruyj  "зелен" "зеленее" ;
+harbour_N = nTelefon "залив" ;
+hate_V2= tvDir (mkRegVerb imperfective second "ненави" "жу" "ненавидел" "ненавидь" "ненавидеть" );
+hat_N = nMashina "шляп" ;
+have_V2= tvDir (mkRegVerb imperfective first "име" "ю" "имел" "имей" "иметь" );
+hear_V2= tvDir (mkRegVerb imperfective first "слуша" "ю" "слушал" "слушай" "слушать" );
+hill_N = nTelefon  "холм" ;
+hope_VS= mkRegVerb imperfective first "наде" "ю" "надеял" "надей" "надеять" ;
+horse_N = nBol "лошад" ;
+hot_A = AKhoroshij "горяч" "горячее" ;
+house_N = nAdres "дом" ;

+important_A = AStaruyj  "важн" "важнее" ;
+industry_N = nChislo "производств" ;
+iron_N = nChislo "желез" ;
+king_N = mkN "король" "короля" "королю" "короля" "королем" "короле" "короли" "королей" "королям" "королей" "королями" "королях" masculine animate;
+know_V2= tvDir (mkRegVerb imperfective first "зна" "ю" "знал" "знай" "знать" );
+lake_N = nChislo "озер" ;
+lamp_N = nMashina "ламп" ;
+learn_V2= tvDir (mkRegVerb imperfective second "уч" "у" "учил" "учи" "учить" );
+leather_N = nEdinica "кож" ;
+leave_V2= tvDir (mkRegVerb imperfective second "ухож" "у" "уходил" "уходи" "уходить" );
+like_V2= tvDir (mkRegVerb imperfective second "нрав" "лю" "нравил" "нравь" "нравить" );
+listen_V2= tvDir (mkRegVerb imperfective first "слуша" "ю" "слушал" "слушай" "слушать" );
+live_V= mkRegVerb imperfective firstE "жив" "у" "жил" "живи" "жить" ;
+long_A = AStaruyj  "длинн" "длиннее" ;
+lose_V2 = tvDir (mkRegVerb imperfective first "теря" "ю" "терял" "теряй" "терять" );
+love_N = nBol "любов" ;
+love_V2= tvDir (mkRegVerb imperfective second "люб" "лю" "любил" "люби" "любить" );
+man_N = nStomatolog "человек" ;
+meat_N =nChislo "мяс" ;
+milk_N = nChislo "молок" ;
+moon_N = nMashina  "лун" ;
+mother_N2 = mkN2 ( nMashina "мам") ;
+mountain_N = nMashina "гор" ;
+music_N = nNoga "музык" ;
+narrow_A =  AStaruyj  "узк" "уже" ;

+new_A =  AStaruyj  "нов" "новее" ;
+newspaper_N = nMashina "газет" ;
+oil_N = nBol "нефть" ;
+old_A =  AStaruyj  "стар" "старше" ;
+open_V2= tvDir (mkRegVerb imperfective first "открыва" "ю" "открывал" "открывай" "открывать" );
+paper_N = nNoga "бумаг" ;
+peace_N = nTelefon "мир" ;
+pen_N = nNoga "ручк" ;
+planet_N = nMashina "планет" ;
+plastic_N = nMashina "пластмасс" ;
+play_V2 = tvDir (mkRegVerb imperfective first "игра" "ю" "играл" "играй" "играть" );
+policeman_N = nTelefon "милиционер" ;
+priest_N = nStomatolog "священник" ;
+queen_N = nMashina "королев" ;
+radio_N = mkIndeclinableNoun "радио" neuter inanimate;
+read_V2 = tvDir (mkRegVerb imperfective first "чита" "ю" "читал" "читай" "читать" );
+red_A =  AStaruyj  "красн" "краснее" ;
+religion_N = nMalyariya "религи" ;
+restaurant_N = nTelefon "ресторан" ;
+river_N = nNoga "рек" ;
+rock_N = nUroven "кам" ;
+roof_N = nEdinica "крыш" ;
+rubber_N = nMashina "резин" ;
+run_V = mkRegVerb imperfective first "бега" "ю" "бегал" "бегай" "бегать" ;
+say_VS = mkRegVerb imperfective second "говор" "ю" "говорил" "говори" "говорить" ;
+school_N = nMashina "школ" ;
+science_N = nEdinica "наук" ;
+sea_N = nProizvedenie "мор" ;
+seek_V2 = tvDir (mkRegVerb imperfective first "ищ" "у" "искал" "ищи" "искать" );
+see_V2 = tvDir (mkRegVerb imperfective second "виж" "у" "видел" "видь" "видеть" );
+sell_V3 = tvDirDir (mkRegVerb imperfective firstE "прода" "ю" "продавал" "продавай" "продавать" );
+send_V3 = tvDirDir (mkRegVerb imperfective first "посыла" "ю" "посылал" "посылай" "посылать" );
+sheep_N = nMashina "овц" ;
+ship_N = nNol "корабл" ;

+shirt_N = nNoga "рубашк" ;
+shoe_N =  mkN "туфля" "туфли" "туфле" "туфлю" "туфлей" "туфле" "туфли" "туфель" "туфлям" "туфли" "туфлями" "туфлях" masculine inanimate;
+shop_N = nTelefon "магазин" ;
+short_A = AMalenkij  "коротк" "короче" ;
+silver_N = nChislo "серебр" ;
+sister_N = nMashina "сестр" ;
+sleep_V = mkRegVerb imperfective second "сп" "лю" "спал" "спи" "спать" ;
+small_A = AMalenkij  "маленьк" "меньше" ;
+snake_N = nTetya"зме" ;
+sock_N = nPotolok "нос" ;
+speak_V2 = tvDir (mkRegVerb imperfective second "говор" "ю" "говорил" "говори" "говорить" );
+star_N = nMashina "звезд" ;
+steel_N = nBol "стал" ;
+stone_N = nNol "камен" ;
+stove_N = nBol "печ" ;
+student_N = nTelefon "студент" ;
+stupid_A =  AMolodoj  "тупой" "тупее" ;
+sun_N =  mkN "солнце" "солнца" "солнцу" "солнце" "солнцем" "солнце" "солнца" "солнц" "солнцам" "солнца" "солнцами" "солнцах" neuter inanimate;
+switch8off_V2 = tvDir (mkRegVerb imperfective first "выключа" "ю" "выключал" "выключай" "выключать") ;
+switch8on_V2 = tvDir (mkRegVerb imperfective first "включа" "ю" "включал" "включай" "включать") ;
+table_N = nTelefon "стол" ;
+teacher_N = nNol "учител" ;
+teach_V2 = tvDir (mkRegVerb imperfective second "уч" "у" "учил" "учи" "учить" );
+television_N = nProizvedenie "телевидени" ;
+thick_A = AStaruyj  "толст" "толще" ;
+thin_A = AMalenkij  "тонк" "тоньше" ;
+train_N = nAdres "поезд" ;
+travel_V = mkRegVerb imperfective first "путешеству" "ю" "путешествовал" "путешествуй" "путешествовать" ;
+tree_N = nChislo "дерев" ;
+--trousers_N =  mkN "" "" "" "" "" "" "штаны" "штанов" "штанам" "штаны" "штанами" "штанах" masculine inanimate;
+ugly_A = AStaruyj  "некрасив" "некрасивее" ;
+understand_V2 = tvDir (mkRegVerb imperfective first "понима" "ю" "понимал" "понимай" "понимать" );
+university_N = nTelefon "университет" ;
+village_N = nMalyariya "деревн" ;
+wait_V2 = tvDir (mkRegVerb imperfective firstE "жд" "у" "ждал" "жди" "ждать" );
+walk_V = mkRegVerb imperfective first "гуля" "ю" "гулял" "гуляй" "гулять" ;
+warm_A = AStaruyj  "тёпл" "теплее" ;
+war_N = nMashina "войн" ;
+watch_V2 = tvDir (mkRegVerb imperfective second "смотр" "ю" "смотрел" "смотри" "смотреть" );
+water_N = nMashina "вод" ;
+white_A = AStaruyj  "бел" "белее" ;

+window_N = nChislo "окн" ;
+wine_N = nChislo "вин" ;
+win_V2 = tvDir (mkRegVerb imperfective first "выигрыва" "ю" "выигрывал" "выигрывай" "выигрывать" );
+woman_N = nZhenchina "женщин" ;
+wood_N = nChislo "дерев" ;
+write_V2 = tvDir (mkRegVerb imperfective first "пиш" "у" "писал" "пиши" "писать" );
+yellow_A = AStaruyj  "жёлт" "желтее" ;
+young_A = AMolodoj  "молод" "моложе";
+
+  do_V2 = tvDir (mkRegVerb imperfective first "дела" "ю" "делал" "делай" "делать" );
+  now_Adv  = mkAdv "сейчас" ;
+  already_Adv  = mkAdv "уже" ;
+  song_N =  nTetya "песн" ;
+  add_V3 = mkV3 (mkRegVerb imperfective first "складыва" "ю" "складывал" "складывай" "складывать" ) "" "в" accusative accusative;
+  number_N  = nChislo  "числ" ;
+  put_V2 = tvDir (mkRegVerb imperfective firstE "клад" "у" "клал" "клади" "класть" );
+  stop_V = mkRegVerb imperfective first "останавлива" "ю" "останавливал" "останавливай" "останавливать";
+  jump_V = mkRegVerb imperfective first "прыга" "ю" "прыгал" "прыгай" "прыгать" ;
+
+distance_N3 = mkN3 (nProizvedenie "расстоян") from_Prep to_Prep ;
+
+-- in Russian combinations with verbs are expressed with adverbs:
+-- "легко понять" ("easy to understand"), which is different from 
+-- adjective expression "легкий для понимания" ("easy for understanding")
+-- So the next to words are adjectives, since there are such adjectives
+-- in Russian, but to use them with verb would be wrong in Russian:
+fun_AV = AStaruyj "весёл" "веселее";
+easy_A2V = mkA2 (AMalenkij "легк" "легче") "для" genitive ;
+
+empty_A =  AMolodoj "пуст" "пустее";
+married_A2 = mkA2 (adjInvar "замужем") "за" instructive ;
+paint_V2A = tvDir (mkRegVerb imperfective first "рису" "ю" "рисовал" "рисуй"  "рисовать" ) ;
+  probable_AS = AStaruyj "возможный" "возможнее";
+ rain_V0  = idetDozhd verbIdti; --  No such verb in Russian!
+talk_V3 = mkV3 (mkRegVerb imperfective second "говор" "ю" "говорил" "говори" "говорить" ) "с" "о" instructive prepositional;
+wonder_VQ = mkRegVerb imperfective first "интересу" "ю" "интересовал" "интересуй" "интересовать";  
+
+    -- Nouns
+
+    animal_N = nZhivotnoe "животн" ;
+    ashes_N = nPepel "пеп" ;
+    back_N = nMashina "спин" ;
+    bark_N = mkN "лай" "лая" "лаю" "лай" "лаем" "лае" "лаи" "лаев" "лаям" "лаи" "лаями" "лаях" masculine inanimate;
+    belly_N = nTelefon "живот" ;
+    bird_N = nEdinica "птиц" ;
+    blood_N = nBol "кров" ;
+    bone_N = nBol "кост" ;
+    breast_N = nBol "грудь" ;
+    
+    cloud_N = nChislo "облак" ;
+    day_N = mkN "день" "дня" "дню" "день" "днём" "дне" "дни" "дней" "дням" "дни" "днями" "днях" masculine inanimate ;
+
+    dust_N = nBol "пыл" ;
+   ear_N = nChislo "ухо" ;
+   earth_N = nTetya "земл" ;
+    egg_N = nChislo "яйц" ;
+    eye_N = nAdres "глаз" ;
+    fat_N = nBank "жир" ;
+
+--    father_N = UseN2 father_N2 ;
+    feather_N = mkN "перо" "пера" "перу" "пера" "пером" "пере" "перья" "перьев" "перьям" "перьев" "перьями" "перьях" neuter inanimate ;
+   fingernail_N = mkN "ноготь" "ногтя" "ногтю" "ногтя" "ногтем" "ногте" "ногти" "ногтей" "ногтям" "ногтей" "ногтями" "ногтях" masculine inanimate ;
+    fire_N = mkN "огонь" "огня" "огню" "огня" "огнём" "огне" "огни" "огней" "огням" "огней" "огнями" "огнях" masculine inanimate ;
+    fish_N = nMashina "рыб" ;
+    flower_N = mkN "отец" "отца" "отцу" "отца" "отцом" "отце" "отцы" "отцов" "отцам" "отцов" "отцами" "отцах" masculine animate ;
+    fog_N = nTelefon "туман" ;
+    foot_N = nTetya "ступн" ;
+    forest_N = nAdres "лес" ;
+    fruit_N = nTelefon "фрукт";
+    grass_N = nMashina "трав" ;
+    guts_N =  nBol "внутренност" ;
+    hair_N = nTelefon "волос" ;
+   hand_N =  nNoga "рук" ;
+   head_N = nMashina "голов" ;
+   heart_N = mkN "сердце" "сердца" "сердцу" "сердца" "сердцем" "сердце" "сердца" "сердец" "сердцам" "сердец" "сердцами" "сердцах" neuter inanimate;
+   horn_N = nAdres "рог" ;
+   husband_N = mkN "муж" "мужа" "мужу" "мужа" "мужем" "муже" "мужья" "мужей" "мужьям" "мужей" "мужьями" "мужьях" masculine animate ;
+   ice_N = mkN "лёд" "льда" "льду" "льда" "льдом" "льде" "льды" "льдов" "льдам" "льдов" "льдами" "льдах" masculine inanimate ;
+   knee_N = mkN "колено" "колена" "колену" "колена" "коленом" "колене" "колени" "колен" "коленам" "колен" "коленями" "коленях" neuter inanimate ;
+    lake_N = nChislo "озер" ;
+   leaf_N = nStul "лист" ;
+   leg_N = nNoga "ног" ;
+  liver_N = nBol "печен" ;
+  louse_N = mkN "вошь" "вши" "вши" "вошь" "вошью" "вше" "вши" "вшей" "вшам" "вшей" "вшами" "вшах" feminine animate ;
+   
+    meat_N = nChislo "мяс" ;
+    moon_N = nMashina "лун" ;
+    
+
+    mountain_N = nMashina "гор" ;
+   mouth_N =  mkN "рот" "рта" "рту" "рот" "ртом" "рте" "рты" "ртов" "ртам" "рты" "ртами" "ртах" masculine inanimate;
+  name_N = mkN "имя" "имени" "имени" "имя" "именем" "имени" "имена" "имён" "именам" "имена" "именами" "именах" neuter inanimate;
+  neck_N = nTetya "ше"  ;
+  night_N = nBol "ноч" ;
+  nose_N = nTelefon "нос" ;
+  person_N = nBol "личность" ;
+  rain_N = nNol "дожд" ;
+   
+  road_N = nNoga "дорог" ;
+   root_N = nUroven "кор" ;
+   rope_N =  nNoga "веревк" ;
+   salt_N = nBol "сол" ;
+   sand_N = mkN "песок" "песка" "песку" "песок" "песком" "песке" "пески" "песков" "пескам" "песков" "песками" "песках" masculine inanimate ;
+    sea_N = nProizvedenie "мор" ;
+    seed_N = mkN "семя" "семени" "семении" "семя" "семенем" "семени" "семена" "семян" "семенам" "семена" "семенами" "семенах" neuter inanimate ;
+   skin_N =  nEdinica "кож" ;
+   sky_N = mkN "небо" "неба" "небу" "небо" "небом" "небе" "небеса" "небес" "небесам" "небес" "небесами" "небесах" neuter inanimate ; 
+   smoke_N =  nTelefon "дым" ;
+    snake_N = nTetya "зме" ;
+   snow_N = nAdres "снег" ;
+    star_N = nMashina "звезд" ;
+    stick_N = nNoga "палк" ;
+
+    
+   tail_N = nTelefon "хвост" ;
+   tongue_N = nBank "язык" ;
+   tooth_N = nTelefon "зуб" ;
+    tree_N = nChislo "дерев" ;
+    water_N = nMashina "вод" ;
+    wife_N = nMashina "жен" ;
+    wind_N = mkN "ветер" "ветра" "ветру" "ветер" "ветром" "ветра" "ветров" "ветра" "ветрам" "ветров" "ветрами" "ветрах" masculine inanimate ;
+    wing_N = mkN "крыло" "крыла" "крылу" "крыло" "крылом" "крыле" "крылья" "крыльев" "крыльям" "крылья" "крыльями" "крыльях" neuter inanimate ;
+    
+   worm_N = nNol "черв" ;
+   year_N = nAdres "год" ;
+
+
+-- Verbs
+
+    bite_V2 = tvDir (mkRegVerb imperfective  first "куса" "ю" "кусал" "кусай" "кусать");
+    blow_V = mkRegVerb imperfective  first "ду" "ю" "дул" "дуй" "дуть"  ;
+   breathe_V = mkRegVerb imperfective  second "дыш" "у" "дышал" "дыши" "дышать"  ;
+   burn_V = mkRegVerb imperfective  second "гор" "ю" "горел" "гори" "гореть"  ;
+   count_V2 = tvDir (mkRegVerb imperfective  first "счита" "ю" "считал" "считай" "считать"  ) ;
+    cut_V2 = tvDir (mkRegVerb imperfective  first "реж" "у" "резал" "режь" "резать" ) ;
+    dig_V = mkRegVerb imperfective  first "копа" "ю" "копал" "копай" "копать"  ;
+   
+    
+    fall_V = mkRegVerb imperfective  first "пада" "ю" "падал" "падай" "падать"  ;
+    
+    fight_V2 = tvDir (mkRegVerb imperfective  firstE "дер" "у" "драл" "дери" "драть" ) ;
+    float_V = mkRegVerb imperfective  firstE "плыв" "у" "плыл" "плыви" "плыть"  ;
+    flow_V = mkRegVerb imperfective  firstE "тек" "у" "тёк" "теки" "течь"  ;
+    fly_V = mkRegVerb imperfective  second "лета" "ю" "летал" "летай" "летать"  ;
+    freeze_V = mkRegVerb imperfective  first "замерза" "ю" "замерзал" "замерзай" "замерзать"  ;
+    give_V3 = tvDirDir (mkRegVerb imperfective  firstE "да" "ю" "давал" "давай" "давать" ) ;
+    
+    hit_V2 = tvDir (mkRegVerb imperfective  first "ударя" "ю" "ударял" "ударяй" "ударять"  );
+    hold_V2 = tvDir (mkRegVerb imperfective  second "держ" "у" "держал" "держи" "держать"  );
+    hunt_V2 = tvDir (mkRegVerb imperfective  second "охоч" "у" "охотил" "охоть" "охотить" ) ;
+    kill_V2 = tvDir (mkRegVerb imperfective  first "убива" "ю" "убивал" "убивай" "убивать" ) ;
+    
+    laugh_V = mkRegVerb imperfective  firstE "сме" "ю" "смеял" "смей" "смеять"  ;
+    lie_V = mkRegVerb imperfective  firstE "лг" "у" "лгал" "лги" "лгать"  ;
+    play_V = mkRegVerb imperfective  first "игра" "ю" "играл" "играй" "играть"  ;
+    pull_V2 = tvDir (mkRegVerb imperfective  first "тян" "у" "тянул" "тяни" "тянуть" ) ;
+    push_V2 = tvDir (mkRegVerb imperfective  first "толка" "ю" "толкал" "толкай" "толкать"  );
+    rub_V2 = tvDir (mkRegVerb imperfective  firstE "тр" "у" "тёр" "три" "тереть"  );
+    
+    scratch_V2 = tvDir (mkRegVerb imperfective  first "чеш" "у" "чесал" "чеши" "чесать" ) ;    
+
+    sew_V = mkRegVerb imperfective  firstE "шь" "ю" "шил" "шей" "шить"  ;
+    sing_V = mkRegVerb imperfective  firstE "по" "ю" "пел" "пой" "петь"  ;
+    sit_V = mkVerbum imperfective  "сижу" "сидишь" "сидит" "сидим" "сидите" "сидят" "сидел" "сиди" "сидеть"  ;
+    smell_V = mkRegVerb imperfective  first "пахн" "у" "пахнул" "пахни" "пахнуть"  ;
+    spit_V = mkRegVerb imperfective  firstE "плю" "ю" "плевал" "плюй" "плевать"  ;
+    split_V2 = tvDir (mkRegVerb imperfective  first "разбива" "ю" "разбивал" "разбей" "разбивать" ) ;
+    squeeze_V2 = tvDir (mkRegVerb imperfective  first "сжима" "ю" "сжимал" "сжимай" "сжимать" ) ;
+    stab_V2 = tvDir (mkRegVerb imperfective  first "кол" "ю" "колол" "коли" "колоть" ) ;
+    stand_V = mkRegVerb imperfective second "сто" "ю" "стоял" "стой" "стоять"  ;
+    suck_V2 = tvDir (mkRegVerb imperfective  firstE "сос" "у" "сосал" "соси" "сосать")  ;
+    swell_V = mkRegVerb imperfective  first "опуха" "ю" "опухал" "опухай" "опухать"  ;
+    swim_V = mkRegVerb imperfective  first "плава" "ю" "плавал" "плавай" "плавать"  ;
+    think_V = mkRegVerb imperfective  first "дума" "ю" "думал" "думай" "думать"  ;
+    throw_V2 = tvDir (mkRegVerb imperfective  first "броса" "ю" "бросал" "бросай" "бросать" ) ;
+    tie_V2 = tvDir (mkRegVerb imperfective  first "вяж" "у" "вязал" "вяжи" "вязать")  ;
+    turn_V = mkRegVerb imperfective  first "поворачива" "ю" "поворачивал" "поворачивай" "поворачивать"  ;
+    vomit_V = mkRegVerb imperfective  firstE "рв" "у" "рвал" "рви" "рвать"  ;
+    wash_V2 = tvDir (mkRegVerb imperfective  first "мо" "ю" "мыл" "мой" "мыть" ) ;
+    wipe_V2 = tvDir (mkRegVerb imperfective  first "вытира" "ю" "вытирал" "вытирай" "вытирать"  );
+
+
+    correct_A = AStaruyj "правильн" "правильнее"; 
+    dry_A = AMolodoj "сух" "суше";

+   
+    dull_A = AStaruyj "скучн" "скучнее";
+    far_Adv = mkAdv "далеко";
+    full_A = AStaruyj "полн" "полнее";
+    heavy_A = AStaruyj "тяжел" "тяжелее";
+    left_Ord = (uy_j_EndDecl   "лев" ) ** {lock_A = <>}; 
+    near_A = AMalenkij "близк" "ближе";
+    right_Ord = (uy_j_EndDecl  "прав") ** {lock_A = <>} ;
+    rotten_A = AMolodoj "гнил" "гнилее";
+    round_A = AStaruyj "кругл" "круглее";
+    sharp_A = AStaruyj "остр" "острее";
+    smooth_A = AMalenkij "гладк" "глаже";
+    straight_A = AMolodoj "прям" "прямее";
+    wet_A = AStaruyj "мокр" "мокрее";
+    wide_A = AMalenkij "широк" "шире";
+
+fear_V2 =tvDir (mkRegVerb imperfective first "бо" "ю" "боял" "бой" "боять" );
+paris_PN = mkPN   "Париж"  Masc  Inanimate ;
+
+
+
+} 
+
diff --git a/lib/resource-1.0/russian/MorphoRus.gf b/lib/resource-1.0/russian/MorphoRus.gf
index 305871a2d..d6610b898 100644
--- a/lib/resource-1.0/russian/MorphoRus.gf
+++ b/lib/resource-1.0/russian/MorphoRus.gf
@@ -310,6 +310,38 @@ oper pronChtoTo: Pronoun =
     p = P3 ;
     pron = False
   } ;
+oper pronEti: Pronoun = 
+  { s = table {
+    PF Nom _ _  => "эти"  ; 
+    PF Gen _ _ => "этих" ;
+    PF Dat _  _ => "этим" ; 
+    PF Acc _  _ => "этих" ; 
+    PF Inst _ _ => "этими" ;
+    PF Prepos _ _ => "этих" 
+    } ;
+    n = Pl; 
+    p = P3;
+    g= PGen Fem ;
+    anim = Animate ; 
+    pron = False    
+  } ;
+
+oper pronTe: Pronoun = 
+  { s = table {
+    PF Nom _ _  => "те"  ; 
+    PF Gen _ _ => "тех" ;
+    PF Dat _  _ => "тем" ; 
+    PF Acc _  _ => "тех" ; 
+    PF Inst _ _ => "теми" ;
+    PF Prepos _ _ => "тех" 
+    } ;
+     n = Pl;
+     p = P3; 
+     g=PGen Fem ;
+     anim = Animate ;  
+     pron = False
+  } ;
+
 
 --oper pronNikto: Pronoun = 
 --  { s = table {
@@ -1229,32 +1261,32 @@ oper vesDet: Adjective = {s = table {
       } 
   } ;
 oper uy_j_EndDecl : Str -> Adjective = \s ->{s = table {
-      AF Nom _ (ASg Masc) => s+"ый"; 
-      AF Nom _ (ASg Fem) => s+"ая"; 
-      AF Nom _ (ASg Neut) => s+"ое";
-      AF Nom _ APl => s+"ые";
-      AF Acc  Inanimate (ASg Masc) => s+"ый"; 
-      AF Acc  Animate (ASg Masc) => s+"ого"; 
-      AF Acc  _ (ASg Fem) => s+"ую"; 
-      AF Acc  _ (ASg Neut) => s+"ое";
-      AF Acc  Inanimate APl => s+"ые";
-      AF Acc  Animate APl => s+"ых";
-      AF Gen  _ (ASg Masc) => s+"ого"; 
-      AF Gen  _ (ASg Fem) => s+"ой"; 
-      AF Gen  _ (ASg Neut) => s+"ого";
-      AF Gen  _ APl => s+"ых";
-      AF Inst _ (ASg Masc) => s+"ым"; 
-      AF Inst _ (ASg Fem) => s+"ой"; 
-      AF Inst _ (ASg Neut) => s+"ым";
-      AF Inst _ APl => s+"ыми";
-      AF Dat  _ (ASg Masc) => s+"ому"; 
-      AF Dat  _ (ASg Fem) => s+"ой"; 
-      AF Dat  _ (ASg Neut) => s+"ому";
-      AF Dat  _ APl => s+"ым";
-      AF Prepos _ (ASg Masc) => s+"ом"; 
-      AF Prepos _ (ASg Fem) => s+"ой"; 
-      AF Prepos _ (ASg Neut) => s+"ом";
-      AF Prepos _ APl => s+"ых";
+      AF Nom _ (ASg Masc) => Prelude.glue s "ый"; 
+      AF Nom _ (ASg Fem) => Prelude.glue s "ая"; 
+      AF Nom _ (ASg Neut) => Prelude.glue s "ое";
+      AF Nom _ APl => Prelude.glue s "ые";
+      AF Acc  Inanimate (ASg Masc) => Prelude.glue s "ый"; 
+      AF Acc  Animate (ASg Masc) => Prelude.glue s "ого"; 
+      AF Acc  _ (ASg Fem) => Prelude.glue s "ую"; 
+      AF Acc  _ (ASg Neut) => Prelude.glue s "ое";
+      AF Acc  Inanimate APl => Prelude.glue s "ые";
+      AF Acc  Animate APl => Prelude.glue s "ых";
+      AF Gen  _ (ASg Masc) => Prelude.glue s "ого"; 
+      AF Gen  _ (ASg Fem) => Prelude.glue s "ой"; 
+      AF Gen  _ (ASg Neut) => Prelude.glue s "ого";
+      AF Gen  _ APl => Prelude.glue s "ых";
+      AF Inst _ (ASg Masc) => Prelude.glue s "ым"; 
+      AF Inst _ (ASg Fem) => Prelude.glue s "ой"; 
+      AF Inst _ (ASg Neut) => Prelude.glue s "ым";
+      AF Inst _ APl => Prelude.glue s "ыми";
+      AF Dat  _ (ASg Masc) => Prelude.glue s "ому"; 
+      AF Dat  _ (ASg Fem) => Prelude.glue s "ой"; 
+      AF Dat  _ (ASg Neut) => Prelude.glue s "ому";
+      AF Dat  _ APl => Prelude.glue s "ым";
+      AF Prepos _ (ASg Masc) => Prelude.glue s "ом"; 
+      AF Prepos _ (ASg Fem) => Prelude.glue s "ой"; 
+      AF Prepos _ (ASg Neut) => Prelude.glue s "ом";
+      AF Prepos _ APl => Prelude.glue s "ых";
       AdvF => "о"
       } 
   } ;
@@ -1493,6 +1525,7 @@ param Conjugation = First | FirstE | Second | Mixed | Dolzhen;
 --
 --3 First conjugation (in Present) verbs :
 
+oper verbIdti : Verbum = verbDecl Imperfective First "ид" "у" "шел" "иди" "идти";
 --oper verbGulyat : Verbum = verbDecl Imperfective First "гуля" "ю" "гулял" "гуляй" "гулять";
 --oper verbVkluchat : Verbum = verbDecl Imperfective First "включа" "ю" "включал" "включай" "включать";
 --oper verbSuchestvovat : Verbum = verbDecl Imperfective First "существу" "ю" "существовал" "существуй" "существовать";
@@ -1533,6 +1566,8 @@ oper verbDolzhen : Verbum = verbDecl Imperfective Dolzhen "долж" "ен" "д
 
 oper AspectVoice: Type = { s : VerbConj => Str ;  asp: Aspect } ;     
 
+idetDozhd: Verbum -> Verbum = \idet -> {s = \\vf=>idet.s!vf ++ "дождь"; asp = Imperfective};
+
 -- "PresentVerb" takes care of the present  tense conjugation.
 
 param PresentVF = PRF GenNum Person;
diff --git a/lib/resource-1.0/russian/NounRus.gf b/lib/resource-1.0/russian/NounRus.gf
index 90a7efd63..11436ceb9 100644
--- a/lib/resource-1.0/russian/NounRus.gf
+++ b/lib/resource-1.0/russian/NounRus.gf
@@ -36,6 +36,26 @@ concrete NounRus of Noun = CatRus ** open ResRus, Prelude, MorphoRus in {
       pron = np.pron
       } ;
 
+    PPartNP np v2 = {
+      s = \\pf => np.s ! pf ++ v2.s ! VFORM Act VINF ; 
+      -- no participles in the Verbum type as they behave as adjectives
+      n = np.n;
+      p = np.p;
+      g = np.g;
+      anim = np.anim;
+      pron = np.pron
+      } ;
+
+    AdvNP np adv = {
+      s = \\pf => np.s ! pf ++ adv.s ;
+      n = np.n;
+      p = np.p;
+      g = np.g;
+      anim = np.anim;
+      pron = np.pron
+      } ;
+
+
     DetSg quant ord = {
       s = \\af => quant.s!af ++ ord.s!af ; 
       n = quant.n;
@@ -62,17 +82,15 @@ concrete NounRus of Noun = CatRus ** open ResRus, Prelude, MorphoRus in {
 -- so just leave a decimal representation, without case-suffixes:
     NumInt i =  {s = table { _ => table {_ => i.s } } } ;
 
-{-
-    OrdInt n = case n of {
-       0|2|6 => (uy_oj_EndDecl n.s) ; 
-       3 => (ti_j_EndDecl n.s) ; 
-       _ => uy_j_EndDecl n.s }  ;
+ --   OrdInt n = case n of {
+ --      0|2|6 => (uy_oj_EndDecl n.s) ; 
+ --      3 => (ti_j_EndDecl n.s) ; 
+ --      _ => uy_j_EndDecl n.s }  ;
 
   OrdNumeral numeral = 
-    {s = \\ af => (uy_j_EndDecl (numeral.s ! caseAF af ! genAF af)).s!af} ;
--}
-    NumNumeral n = n ;
+   {s = \\ af => (uy_j_EndDecl (numeral.s ! caseAF af ! genAF af)).s!af} ;
 
+    NumNumeral n = n ;
 
     AdNum adn num = {s = \\c,n => adn.s ++ num.s!c!n} ;
 
diff --git a/lib/resource-1.0/russian/ResRus.gf b/lib/resource-1.0/russian/ResRus.gf
index 75591f8a8..9165fa790 100644
--- a/lib/resource-1.0/russian/ResRus.gf
+++ b/lib/resource-1.0/russian/ResRus.gf
@@ -23,12 +23,12 @@ param
   Animacy    = Animate | Inanimate ;
   Voice        = Act | Pass ;
   Aspect     = Imperfective | Perfective ;
---  RusTense      = Present | Past | Future ;
+  RusTense      = Present | PastRus | Future ;
 --  Degree     = Pos | Comp | Super ;
   AfterPrep  = Yes | No ; 
   Possessive = NonPoss | Poss GenNum ;
 --  Anteriority = Simul | Anter ; 
-  ClForm =  ClIndic Tense Anteriority | ClCondit  | ClInfinit | ClImper;      
+  ClForm =  ClIndic RusTense Anteriority | ClCondit  | ClInfinit | ClImper;      
   -- "naked infinitive" clauses
 
 -- A number of Russian nouns have common gender. They can
@@ -178,7 +178,7 @@ oper
 
 -- Depending on the tense verbs conjugate according to combinations
 -- of gender, person and number of the verb objects. 
--- Participles (Present and Past) and Gerund forms are not included in the
+-- Participles (Present and PastRus) and Gerund forms are not included in the
 -- current description. This is the verb type used in the lexicon:
 
 oper Verbum : Type = { s: VerbForm => Str ; asp : Aspect };
@@ -190,8 +190,12 @@ param
   VTense   = VPresent Person | VPast | VFuture Person ;
 
 oper 
-   getVTense : Tense -> Person -> VTense= \t,p ->
-   case t of { Present => VPresent p ; Past => VPast; Future => VFuture p } ;
+   getVTense : RusTense -> Person -> VTense= \t,p ->
+   case t of { Present => VPresent p ; PastRus => VPast; Future => VFuture p } ;
+
+   getTense : Tense -> RusTense= \t ->
+   case t of { Pres => Present  ; Past => PastRus; _ => Future} ;
+
   
    getVoice: VerbForm -> Voice = \vf ->
    case vf of {
@@ -203,7 +207,7 @@ Nom => "";
 Gen => "себя";
 Dat=> "себе";
 Acc => "себя";
-Instr => "собой";
+Inst => "собой";
 Prep =>"себе"};
 
   Verb : Type = {s : ClForm => GenNum => Person => Str ; asp : Aspect ; w: Voice} ;
@@ -256,7 +260,7 @@ param
 oper
    getActVerbForm : ClForm -> Gender -> Number -> Person -> VerbForm = \clf,g,n, p -> case clf of
    { ClIndic Future _ => VFORM Act (VIND (gNum g n) (VFuture p));
-     ClIndic Past _ => VFORM Act (VIND (gNum g n) VPast);
+     ClIndic PastRus _ => VFORM Act (VIND (gNum g n) VPast);
       ClIndic Present _ => VFORM Act (VIND (gNum g n) (VPresent p));
       ClCondit => VFORM Act (VSUB (gNum g n));
       ClInfinit => VFORM Act VINF ;
@@ -387,324 +391,4 @@ oper
       SF _ Prepos => Prepos 
     } ;
 
-
---  oper
---    agrP3 : Number -> Agr = \n -> 
---      {n = n ; p = P3} ;
---
---    conjAgr : Agr -> Agr -> Agr = \a,b -> {
---      n = conjNumber a.n b.n ;
---      p = conjPerson a.p b.p
---      } ;
---
----- For $Lex$.
---
----- For each lexical category, here are the worst-case constructors.
---
---    mkNoun : (_,_,_,_ : Str) -> {s : Number => Case => Str} = 
---      \man,mans,men,mens -> {
---      s = table {
---        Sg => table {
---          Gen => mans ;
---          _ => man
---          } ;
---        Pl => table {
---          Gen => mens ;
---          _ => men
---          }
---        }
---      } ;
---
---    mkAdjective : (_,_,_,_ : Str) -> {s : AForm => Str} = 
---      \good,better,best,well -> {
---      s = table {
---        AAdj Posit  => good ;
---        AAdj Compar => better ;
---        AAdj Superl => best ;
---        AAdv        => well
---        }
---      } ;
---
---    mkVerb : (_,_,_,_,_ : Str) -> Verb = 
---      \go,goes,went,gone,going -> {
---      s = table {
---        VInf   => go ;
---        VPres  => goes ;
---        VPast  => went ; --# notpresent
---        VPPart => gone ;
---        VPresPart => going
---        } ;
---      isRefl = False
---      } ;
---
---    mkIP : (i,me,my : Str) -> Number -> {s : Case => Str ; n : Number} =
---     \i,me,my,n -> let who = mkNP i me my n P3 in {s = who.s ; n = n} ;
---
---    mkNP : (i,me,my : Str) -> Number -> Person -> {s : Case => Str ; a : Agr} =
---     \i,me,my,n,p -> {
---     s = table {
---       Nom => i ;
---       Acc => me ;
---       Gen => my
---       } ;
---     a = {
---       n = n ;
---       p = p
---       }
---     } ;
---
----- These functions cover many cases; full coverage inflectional patterns are
----- in $MorphoRus$.
---
---    regN : Str -> {s : Number => Case => Str} = \car ->
---      mkNoun car (car + "'s") (car + "s") (car + "s'") ;
---
---    regA : Str -> {s : AForm => Str} = \warm ->
---      mkAdjective warm (warm + "er") (warm + "est") (warm + "ly") ;
---
---    regV : Str -> Verb = \walk ->
---      mkVerb walk (walk + "s") (walk + "ed") (walk + "ed") (walk + "ing") ;
---
---    regNP : Str -> Number -> {s : Case => Str ; a : Agr} = \that,n ->
---      mkNP that that (that + "'s") n P3 ;
---
----- We have just a heuristic definition of the indefinite article.
----- There are lots of exceptions: consonantic "e" ("euphemism"), consonantic
----- "o" ("one-sided"), vocalic "u" ("umbrella").
---
---    artIndef = pre {
---      "a" ; 
---      "an" / strs {"a" ; "e" ; "i" ; "o" ; "A" ; "E" ; "I" ; "O" }
---      } ;
---
---    artDef = "the" ;
---
----- For $Verb$.
---
---  Verb : Type = {
---    s : VForm => Str ;
---    isRefl : Bool
---    } ;
---
---  VerbForms : Type =
---    Tense => Anteriority => Polarity => Order => Agr => {fin, inf : Str} ; 
---
---  VP : Type = {
---    s   : VerbForms ;
---    prp : Str ; -- present participle 
---    inf : Str ; -- infinitive
---    ad  : Str ;
---    s2  : Agr => Str
---    } ;
---
------ The order gets wrong with AdV, but works around a parser
------ generation bug.
---
---  predV : Verb -> VP = \verb -> {
---    s = \\t,ant,b,ord,agr => 
---      let
---        inf  = verb.s ! VInf ;
---        fin  = presVerb verb agr ;
---        part = verb.s ! VPPart ;
---        vf : Str -> Str -> {fin, inf : Str} = \x,y -> 
---          {fin = x ; inf = y} ;
---      in
---      case <t,ant,b,ord> of {
---        <Pres,Simul,Pos,ODir>   => vf            fin [] ; --- should be opp
---        <Pres,Simul,Pos,OQuest> => vf (does agr)   inf ;
---        <Pres,Anter,Pos,_>      => vf (have agr)   part ; --# notpresent
---        <Pres,Anter,Neg,_>      => vf (havent agr) part ; --# notpresent
---        <Past,Simul,Pos,ODir>   => vf (verb.s ! VPast) [] ; --# notpresent --- should be opp
---        <Past,Simul,Pos,OQuest> => vf "did"        inf ; --# notpresent
---        <Past,Simul,Neg,_>      => vf "didn't"     inf ; --# notpresent
---        <Past,Anter,Pos,_>      => vf "had"        part ; --# notpresent
---        <Past,Anter,Neg,_>      => vf "hadn't"     part ; --# notpresent
---        <Fut, Simul,Pos,_>      => vf "will"       inf ; --# notpresent
---        <Fut, Simul,Neg,_>      => vf "won't"      inf ; --# notpresent
---        <Fut, Anter,Pos,_>      => vf "will"       ("have" ++ part) ; --# notpresent
---        <Fut, Anter,Neg,_>      => vf "won't"      ("have" ++ part) ; --# notpresent
---        <Cond,Simul,Pos,_>      => vf "would"      inf ; --# notpresent
---        <Cond,Simul,Neg,_>      => vf "wouldn't"   inf ; --# notpresent
---        <Cond,Anter,Pos,_>      => vf "would"      ("have" ++ part) ; --# notpresent
---        <Cond,Anter,Neg,_>      => vf "wouldn't"   ("have" ++ part) ; --# notpresent
---        <Pres,Simul,Neg,_>      => vf (doesnt agr) inf
---        } ;
---    prp  = verb.s ! VPresPart ;
---    inf  = verb.s ! VInf ;
---    ad = [] ;
---    s2 = \\a => if_then_Str verb.isRefl (reflPron ! a) []
---    } ;
---
---  predAux : Aux -> VP = \verb -> {
---    s = \\t,ant,b,ord,agr => 
---      let 
---        inf  = verb.inf ;
---        fin  = verb.pres ! b ! agr ;
---        part = verb.ppart ;
---        vf : Str -> Str -> {fin, inf : Str} = \x,y -> 
---          {fin = x ; inf = y} ;
---      in
---      case <t,ant,b,ord> of {
---        <Pres,Anter,Pos,_>      => vf (have agr)   part ;  --# notpresent
---        <Pres,Anter,Neg,_>      => vf (havent agr) part ; --# notpresent
---        <Past,Simul,_,  _>      => vf (verb.past ! b ! agr) [] ; --# notpresent
---        <Past,Anter,Pos,_>      => vf "had"        part ; --# notpresent
---        <Past,Anter,Neg,_>      => vf "hadn't"     part ; --# notpresent
---        <Fut, Simul,Pos,_>      => vf "will"       inf ; --# notpresent
---        <Fut, Simul,Neg,_>      => vf "won't"      inf ; --# notpresent
---        <Fut, Anter,Pos,_>      => vf "will"       ("have" ++ part) ; --# notpresent
---        <Fut, Anter,Neg,_>      => vf "won't"      ("have" ++ part) ; --# notpresent
---        <Cond,Simul,Pos,_>      => vf "would"      inf ; --# notpresent
---        <Cond,Simul,Neg,_>      => vf "wouldn't"   inf ; --# notpresent
---        <Cond,Anter,Pos,_>      => vf "would"      ("have" ++ part) ; --# notpresent
---        <Cond,Anter,Neg,_>      => vf "wouldn't"   ("have" ++ part) ; --# notpresent
---        <Pres,Simul,_,  _>      => vf fin          [] 
---        } ;
---    prp = verb.prpart ;
---    inf = verb.inf ;
---    ad = [] ;
---    s2 = \\_ => []
---    } ;
---
---  insertObj : (Agr => Str) -> VP -> VP = \obj,vp -> {
---    s = vp.s ;
---    prp = vp.prp ;
---    inf = vp.inf ;
---    ad = vp.ad ;
---    s2 = \\a => vp.s2 ! a ++ obj ! a
---    } ;
---
------ The adverb should be before the finite verb.
---
---  insertAdV : Str -> VP -> VP = \adv,vp -> {
---    s = vp.s ;
---    prp = vp.prp ;
---    inf = vp.inf ;
---    ad = vp.ad ++ adv ;
---    s2 = \\a => vp.s2 ! a
---    } ;
---
----- 
---
---  predVV : {s : VVForm => Str ; isAux : Bool} -> VP = \verb ->
---    let verbs = verb.s
---    in
---    case verb.isAux of {
---      True => predAux {
---        pres = table {
---          Pos => \\_ => verbs ! VVF VPres ;
---          Neg => \\_ => verbs ! VVPresNeg
---          } ;
---        past = table {                       --# notpresent
---          Pos => \\_ => verbs ! VVF VPast ;  --# notpresent
---          Neg => \\_ => verbs ! VVPastNeg    --# notpresent
---          } ;    --# notpresent
---        inf = verbs ! VVF VInf ;
---        ppart = verbs ! VVF VPPart ;
---        prpart = verbs ! VVF VPresPart ;
---        } ;
---      _    => predV {s = \\vf => verbs ! VVF vf ; isRefl = False}
---      } ;
---
---  presVerb : {s : VForm => Str} -> Agr -> Str = \verb -> 
---    agrVerb (verb.s ! VPres) (verb.s ! VInf) ;
---
---  infVP : Bool -> VP -> Agr -> Str = \isAux,vp,a ->
---    if_then_Str isAux [] "to" ++ 
---    vp.inf ++ vp.s2 ! a ;
---
---  agrVerb : Str -> Str -> Agr -> Str = \has,have,agr -> 
---    case agr of {
---      {n = Sg ; p = P3} => has ;
---      _                 => have
---      } ;
---
---  have   = agrVerb "has"     "have" ;
---  havent = agrVerb "hasn't"  "haven't" ;
---  does   = agrVerb "does"    "do" ;
---  doesnt = agrVerb "doesn't" "don't" ;
---
---  Aux = {
---    pres : Polarity => Agr => Str ; 
---    past : Polarity => Agr => Str ;  --# notpresent
---    inf,ppart,prpart : Str
---    } ;
---
---  auxBe : Aux = {
---    pres = \\b,a => case <b,a> of {
---      <Pos,{n = Sg ; p = P1}> => "am" ; 
---      <Neg,{n = Sg ; p = P1}> => ["am not"] ; --- am not I
---      _ => agrVerb (posneg b "is")  (posneg b "are") a
---      } ;
---    past = \\b,a => case a of {                  --# notpresent
---      {n = Sg ; p = P1|P3} => (posneg b "was") ; --# notpresent
---      _                    => (posneg b "were") --# notpresent
---      } ; --# notpresent
---    inf  = "be" ;
---    ppart = "been" ;
---    prpart = "being"
---    } ;
---
---  posneg : Polarity -> Str -> Str = \p,s -> case p of {
---    Pos => s ;
---    Neg => s + "n't"
---    } ;
---
---  conjThat : Str = "that" ;
---
---  reflPron : Agr => Str = table {
---    {n = Sg ; p = P1} => "myself" ;
---    {n = Sg ; p = P2} => "yourself" ;
---    {n = Sg ; p = P3} => "itself" ; ----
---    {n = Pl ; p = P1} => "ourselves" ;
---    {n = Pl ; p = P2} => "yourselves" ;
---    {n = Pl ; p = P3} => "themselves"
---    } ;
---
----- For $Sentence$.
---
---  Clause : Type = {
---    s : Tense => Anteriority => Polarity => Order => Str
---    } ;
---
---  mkClause : Str -> Agr -> VP -> Clause =
---    \subj,agr,vp -> {
---      s = \\t,a,b,o => 
---        let 
---          verb  = vp.s ! t ! a ! b ! o ! agr ;
---          compl = vp.s2 ! agr
---        in
---        case o of {
---          ODir   => subj ++ verb.fin ++ vp.ad ++ verb.inf ++ compl ;
---          OQuest => verb.fin ++ subj ++ vp.ad ++ verb.inf ++ compl
---          }
---    } ;
---
---
----- For $Numeral$.
---
---  mkNum : Str -> Str -> Str -> Str -> {s : DForm => CardOrd => Str} = 
---    \two, twelve, twenty, second ->
---    {s = table {
---       unit => table {NCard => two ; NOrd => second} ; 
---       teen => \\c => mkCard c twelve ; 
---       ten  => \\c => mkCard c twenty
---       }
---    } ;
---
---  regNum : Str -> {s : DForm => CardOrd => Str} = 
---    \six -> mkNum six (six + "teen") (six + "ty") (regOrd six) ;
---
---  regCardOrd : Str -> {s : CardOrd => Str} = \ten ->
---    {s = table {NCard => ten ; NOrd => regOrd ten}} ;
---
---  mkCard : CardOrd -> Str -> Str = \c,ten -> 
---    (regCardOrd ten).s ! c ; 
---
---  regOrd : Str -> Str = \ten -> 
---    case last ten of {
---      "y" => init ten + "ieth" ;
---      _   => ten + "th"
---      } ;
---
 }
diff --git a/lib/resource-1.0/russian/SentenceRus.gf b/lib/resource-1.0/russian/SentenceRus.gf
index 404d13d54..08d700a8e 100644
--- a/lib/resource-1.0/russian/SentenceRus.gf
+++ b/lib/resource-1.0/russian/SentenceRus.gf
@@ -70,10 +70,10 @@ concrete SentenceRus of Sentence = CatRus ** open Prelude, ResRus in {
     EmbedQS qs = {s = qs.s ! QIndir} ;
     EmbedVP vp = {s = vp.s!ClInfinit!(ASg Masc) !P3} ;
 
-    UseCl  t a p cl = {s = cl.s! p.p ! ClIndic t.t a.a};
+    UseCl  t a p cl = {s = cl.s! p.p ! ClIndic (getTense t.t) a.a};
 
-    UseQCl t a p qcl= {s = qcl.s!p.p! ClIndic t.t a.a };
-    UseRCl t a p rcl ={s = rcl.s! p.p ! ClIndic t.t a.a };
+    UseQCl t a p qcl= {s = qcl.s!p.p! ClIndic (getTense t.t) a.a };
+    UseRCl t a p rcl ={s = rcl.s! p.p ! ClIndic (getTense t.t) a.a };
 
 }
 
diff --git a/lib/resource-1.0/russian/StructuralRus.gf b/lib/resource-1.0/russian/StructuralRus.gf
index 8599600c1..af758d0f9 100644
--- a/lib/resource-1.0/russian/StructuralRus.gf
+++ b/lib/resource-1.0/russian/StructuralRus.gf
@@ -1,7 +1,7 @@
 --# -path=.:../abstract:../common:../../prelude
 
 concrete StructuralRus of Structural = CatRus ** 
-  open ResRus, MorphoRus, (P = ParadigmsRus), Prelude,NounRus in {
+  open ResRus, MorphoRus, (P = ParadigmsRus), Prelude, NounRus, in {
 
   flags optimize=all ; coding=utf8 ;
 
@@ -38,7 +38,6 @@ lin
   everything_NP  = UsePron (pronVseInanimate ** {lock_Pron=<>}) ;
   everywhere_Adv = ss "везде" ;
   few_Det = (ij_EndK_G_KH_Decl "немног") **{lock_Det= <>; n= Sg; g = PNoGen; c = Nom}; -- AMalenkij  
-
   first_Ord = (uy_j_EndDecl  "перв" ) ** {lock_A = <>};  --AStaruyj 
   from_Prep  = { s = "от" ; c = Gen };
   he_Pron  = pronOn ;
@@ -59,9 +58,6 @@ lin
   -- inanimate, Sg: "большинство телефонов безмолству-ет" 
 --  most8many_Det = bolshinstvoPlDet ** {n = Pl; g = (PGen Neut); c= Gen} ;  
   -- animate, Pl: "большинство учащихся хорошо подготовлен-ы"
-
-
-
  much_Det   = mnogoSgDet ** {n = Sg; g = (PGen Neut); c= Gen} ; -- same as previous
  must_VV  = verbDolzhen ;
  no_Phr  = ss ["Нет ."] ;
@@ -75,8 +71,6 @@ lin
   please_Voc = ss "пожалуйста" ;
   possess_Prep  = { s = "" ; c = Gen}; --- ?? AR 19/2/2004
   quite_Adv = ss "довольно" ;
-
-
   she_Pron   = pronOna ;
   so_AdA = ss "так";
   somebody_NP = UsePron (pronKtoTo** {lock_Pron = <>});
@@ -84,22 +78,14 @@ lin
   somePl_Det = nekotorujDet ** {n = Pl; g = PNoGen; c= Nom} ;  
   something_NP  = UsePron (pronChtoTo** {lock_Pron=<> }) ;
   somewhere_Adv  = ss "где-нибудь" ;
-
-
-{-
-  these_NP n =  { s =\\_ => "“”"; n = Pl; p = P3; g= PGen Fem ;
-      anim = Animate ;  pron = True} ;    -- missing in Russian
-  those_NP n =  { s =\\_ => "“”" ; n = Pl; p = P3; g=PGen Fem ;
-     anim = Animate ;  pron = True} ;    -- missing in Russian
--}
+  these_NP =  UsePron (pronEti** {lock_Pron = <>}); -- missing in Russian
+  those_NP =  UsePron (pronTe** {lock_Pron = <>}); -- missing in Russian
   that_Quant   = totDet ** {n = Sg; g = PNoGen; c= Nom} ;
   that_NP  = det2NounPhrase totDet ; -- inanimate form only
   there_Adv = ss "там" ;
   there7to_Adv = ss "туда" ;
   there7from_Adv = ss "оттуда" ;
   therefore_PConj  = ss "следовательно" ;
-
-
 --  these_NDet  = etotDet ** { g = PNoGen; c= Nom} ;  
 --  they8fem_NP = UsePron pronOni Animate;
   they_Pron  = pronOni;
@@ -113,8 +99,6 @@ lin
   under_Prep  = { s = "под"  ; c = Inst };
   very_AdA  = ss "очень" ;
   want_VV  = verbKhotet ;
-
-
   we_Pron  = pronMu ;
   whatPl_IP = pron2NounPhraseNum pronChto Inanimate Pl;
   whatSg_IP = pron2NounPhraseNum pronChto Inanimate Sg;
@@ -146,7 +130,5 @@ lin
 ---  NeitherNor = sd2 "ни" [", ни"]  ** {n = Sg} ;
 ---  NowhereNP = ss "нигде" ;
 ---  AgentPrep = { s = "" ; c = Nom}; -- missing in Russian
+}
 
-
-
-}
\ No newline at end of file
diff --git a/lib/resource-1.0/russian/VerbRus.gf b/lib/resource-1.0/russian/VerbRus.gf
index c5f2e5b10..068c7c760 100644
--- a/lib/resource-1.0/russian/VerbRus.gf
+++ b/lib/resource-1.0/russian/VerbRus.gf
@@ -9,7 +9,7 @@ concrete VerbRus of Verb = CatRus ** open ResRus, Prelude in {
  { s=\\clf,gn,p => case clf of 
    {
         (ClIndic Present _) =>  masha.s ! (mkPronForm Nom No NonPoss) ;
-        (ClIndic Past _) => case  gn of 
+        (ClIndic PastRus _) => case  gn of 
     {   (ASg Fem)  =>"была"++masha.s ! (mkPronForm Inst No NonPoss);
       (ASg Masc)  =>"был" ++ masha.s!(mkPronForm Inst No NonPoss);
      (ASg Neut)  =>"было" ++ masha.s!(mkPronForm Inst No NonPoss);
@@ -52,7 +52,7 @@ concrete VerbRus of Verb = CatRus ** open ResRus, Prelude in {
 -- infinitive does not save GenNum, 
 -- but indicative does for the sake of adjectival predication !
         ClIndic Present _ =>  zloj.s ! AF Nom Animate gn ;
-        ClIndic Past _ => case gn of
+        ClIndic PastRus _ => case gn of
        { (ASg Fem)   => "была" ++ zloj.s! AF Nom Animate (ASg Fem);

           (ASg Masc)  => "был" ++ zloj.s! AF Nom Animate (ASg Masc);
           (ASg Neut)   => "был" ++ zloj.s! AF Nom Animate (ASg Neut);
@@ -97,7 +97,7 @@ concrete VerbRus of Verb = CatRus ** open ResRus, Prelude in {
      };
      ClInfinit => "быть" ++ zloj.s;
         ClIndic Present  _ => zloj.s ;
-        ClIndic Past _ => case gn of 
+        ClIndic PastRus _ => case gn of 
        { (ASg Fem)  => "была" ++ zloj.s;
          (ASg Masc) => "был" ++ zloj.s;
           (ASg Neut) => "было" ++ zloj.s;
