changed names of resource-1.3; added a note on homepage on release

This commit is contained in:
aarne
2008-06-25 16:54:35 +00:00
parent 7d721eb16e
commit c5c6d13546
1729 changed files with 113 additions and 32 deletions
+412
View File
@@ -0,0 +1,412 @@
concrete Hebrew of Letter=open ResHebU in{flags coding=utf8;flags modulesize=n42;flags startcat=Letter;flags lexer=textlit;flags unlexer=textlit;oper A''114:Str=table ResHebU.Gen[("в░в÷в≥"++("в·в╕в≤в╒в╗в╙"++("в°в■в∙в⌠в≥в╒"++("в°в "++"в╘"))))("в░в÷в≥"++("в·в╕в≤в╒в╗"++("в°в■в∙в⌠в≥в╒"++("в°в "++"в╘"))))];
oper A''115:Str=table ResHebU.Gen[("в░в÷в≈в÷в∙"++("в·в╕в≤в╒в╗в∙в╙"++("в°в■в∙в⌠в≥в╒"++("в°в⌡в²"++"в╘"))))("в░в÷в≈в÷в∙"++("в·в╕в≤в╒в╗в≥в²"++("в°в■в∙в⌠в≥в╒"++("в°в⌡в÷"++"в╘"))))];
oper A''117:Str=table ResHebU.Gen{p_Regret__3=>"в░в÷в≥"++("в·в╕в≤в╒в╗"++("в°в■в∙в⌠в≥в╒"++("в°в "++"в╘")))};
oper A''118:Str=table ResHebU.Gen[("в░в÷в≈в÷в∙"++("в·в╕в≤в╒в╗в≥в²"++("в°в■в∙в⌠в≥в╒"++("в°в⌡в²"++"в╘"))))("в░в÷в≈в÷в∙"++("в·в╕в≤в╒в╗в≥в²"++("в°в■в∙в⌠в≥в╒"++("в°в⌡в÷"++"в╘"))))];
oper A''120:Str=table ResHebU.Gen{p_Regret__3=>"в░в÷в≥"++("в·в╕в≤в╒в╗в╙"++("в°в■в∙в⌠в≥в╒"++("в°в "++"в╘")))};
oper A''121:Str=table ResHebU.Gen[("в░в÷в≈в÷в∙"++("в·в╕в≤в╒в╗в∙в╙"++("в°в■в∙в⌠в≥в╒"++("в°в⌡в²"++"в╘"))))("в░в÷в≈в÷в∙"++("в·в╕в≤в╒в╗в∙в╙"++("в°в■в∙в⌠в≥в╒"++("в°в⌡в÷"++"в╘"))))];
oper A''22:Str=table ResHebU.Gen[("в■в÷в÷в≥"++("в·в╙в⌡в▒в⌠в╙"++("в°в■в∙в⌠в≥в╒"++("в°в "++"в╘"))))("в■в÷в÷в≥"++("в·в╙в⌡в▒в⌠"++("в°в■в∙в⌠в≥в╒"++("в°в "++"в╘"))))];
oper A''23:Str=table ResHebU.Gen[("в■в÷в÷в∙"++("в·в╙в⌡в▒в⌠в∙в╙"++("в°в■в∙в⌠в≥в╒"++("в°в⌡в²"++"в╘"))))("в■в÷в÷в∙"++("в·в╙в⌡в▒в⌠в≥в²"++("в°в■в∙в⌠в≥в╒"++("в°в⌡в÷"++"в╘"))))];
oper A''25:Str=table ResHebU.Gen{p_Honour__3=>"в■в÷в÷в≥"++("в·в╙в⌡в▒в⌠"++("в°в■в∙в⌠в≥в╒"++("в°в "++"в╘")))};
oper A''26:Str=table ResHebU.Gen[("в■в÷в÷в∙"++("в·в╙в⌡в▒в⌠в≥в²"++("в°в■в∙в⌠в≥в╒"++("в°в⌡в²"++"в╘"))))("в■в÷в÷в∙"++("в·в╙в⌡в▒в⌠в≥в²"++("в°в■в∙в⌠в≥в╒"++("в°в⌡в÷"++"в╘"))))];
oper A''28:Str=table ResHebU.Gen{p_Honour__3=>"в■в÷в÷в≥"++("в·в╙в⌡в▒в⌠в╙"++("в°в■в∙в⌠в≥в╒"++("в°в "++"в╘")))};
oper A''29:Str=table ResHebU.Gen[("в■в÷в÷в∙"++("в·в╙в⌡в▒в⌠в∙в╙"++("в°в■в∙в⌠в≥в╒"++("в°в⌡в²"++"в╘"))))("в■в÷в÷в∙"++("в·в╙в⌡в▒в⌠в∙в╙"++("в°в■в∙в⌠в≥в╒"++("в°в⌡в÷"++"в╘"))))];
oper A''47:Str=table ResHebU.Gen[("в░в÷в≥"++("в░в∙в■в▒в╙"++"в░в∙в╙в "))("в░в÷в≥"++("в░в∙в■в▒"++"в░в∙в╙в "))];
oper A''48:Str=table ResHebU.Gen[("в░в÷в≈в÷в∙"++("в░в∙в■в▒в∙в╙"++"в░в╙в⌡в²"))("в░в÷в≈в÷в∙"++("в░в∙в■в▒в≥в²"++"в░в╙в⌡в÷"))];
oper A''5:Str=<ResHebU.cgen<ResHebU.masc>>;
oper A''50:Str=table ResHebU.Gen{p_ILoveYou__3=>"в░в÷в≥"++("в░в∙в■в▒"++"в░в∙в╙в ")};
oper A''51:Str=table ResHebU.Gen[("в░в÷в≈в÷в∙"++("в░в∙в■в▒в≥в²"++"в░в╙в⌡в²"))("в░в÷в≈в÷в∙"++("в░в∙в■в▒в≥в²"++"в░в╙в⌡в÷"))];
oper A''53:Str=table ResHebU.Gen{p_ILoveYou__3=>"в░в÷в≥"++("в░в∙в■в▒в╙"++"в░в∙в╙в ")};
oper A''54:Str=table ResHebU.Gen[("в░в÷в≈в÷в∙"++("в░в∙в■в▒в∙в╙"++"в░в╙в⌡в²"))("в░в÷в≈в÷в∙"++("в░в∙в■в▒в∙в╙"++"в░в╙в⌡в÷"))];
oper A''6:Str=<ResHebU.cnum<ResHebU.sg>>;
oper A''79:Str=<ResHebU.cgen<ResHebU.fem>>;
oper A''93:Str=<ResHebU.cnum<ResHebU.pl>>;
lincat Author={g:ResHebU.DepGen;n:ResHebU.DepNum;s:(ResHebU.Num=>(ResHebU.Gen=>Str))}={g=<ResHebU.depgen>;n=<ResHebU.depnum>;s=table ResHebU.Num{p_Author__0=>table ResHebU.Gen{p_Author__1=>str@0}}};"Author";
lin BePromoted:Letter.Sentence=\Position@0->{s=table ResHebU.DepNum{p_BePromoted__0=>table ResHebU.DepGen{p_BePromoted__1=>table ResHebU.Num[(table ResHebU.Gen{p_BePromoted__3=>"в╖в∙в⌠в·в╙"++("в°в╙в╓в╖в≥в⌠"++("в╘в°"++Position@0.s!<ResHebU.sg>!$p_BePromoted__3))})(table ResHebU.Gen[("в╖в∙в⌠в·в╙в²"++("в°в╙в╓в╖в≥в⌠"++("в╘в°"++Position@0.s!<ResHebU.pl>!<ResHebU.masc>)))("в╖в∙в⌠в·в╙в÷"++("в°в╙в╓в╖в≥в⌠"++("в╘в°"++Position@0.s!<ResHebU.pl>!<ResHebU.fem>)))])]}}};"в╖в∙в⌠в·в╙ в°в╙в╓в╖в≥в⌠ в╘в° Position_0";
lin ColleagueHe:Letter.Recipient=\->{g=<ResHebU.masc>;n=<ResHebU.sg>;s="в╒в·в≥в╙"};"{ResHebU.masc}";
lin ColleagueShe:Letter.Recipient=\->{g=<ResHebU.fem>;n=<ResHebU.sg>;s="в╒в·в≥в╙в■"};"{ResHebU.fem}";
lin ColleaguesHe:Letter.Recipient=\->{g=<ResHebU.masc>;n=<ResHebU.pl>;s="в╒в·в≥в╙в≥в²"};"{ResHebU.masc}";
lin ColleaguesShe:Letter.Recipient=\->{g=<ResHebU.fem>;n=<ResHebU.pl>;s="в╒в·в≥в╙в∙в╙"};"{ResHebU.fem}";
lin Company:Letter.NounPhrase=\->{g=<ResHebU.fem>;n=<ResHebU.sg>;s="в≈в▒в╗в╙в÷в∙"};"{ResHebU.fem}";
lin Competitor:Letter.NounPhrase=\->{g=<ResHebU.masc>;n=<ResHebU.sg>;s="в■в·в╙в≈в╗в■"++("в■в▓в╗в∙в╒"++("в▒в≥в∙в╙в╗"++"в╘в°в÷в∙"))};"{ResHebU.masc}";
lin DarlingHe:Letter.Recipient=\->{g=<ResHebU.masc>;n=<ResHebU.sg>;s="в░в■в∙в▒в≥"};"{ResHebU.masc}";
lin DarlingShe:Letter.Recipient=\->{g=<ResHebU.fem>;n=<ResHebU.sg>;s="в░в■в∙в▒в╙в≥"};"{ResHebU.fem}";
lin Dean:Letter.Author=\->{g=Hebrew.A''5;n=Hebrew.A''6;s=table ResHebU.Num{p_Dean__0=>table ResHebU.Gen{p_Dean__1=>"в⌠в≥в╖в÷"}}};"{ResHebU.cgen} {ResHebU.masc}";
lin DearRec:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s=Recipient@0.s++table ResHebU.Num[(table ResHebU.Gen["в≥в╖в╗""в≥в╖в╗в■"]!(Recipient@0.g))(table ResHebU.Gen["в≥в╖в╗в≥в²""в≥в╖в╗в∙в╙"]!(Recipient@0.g))]!(Recipient@0.n)};"Recipient_0";
lincat Ending={g:ResHebU.DepGen;n:ResHebU.DepNum;s:(ResHebU.Num=>(ResHebU.Gen=>Str))}={g=<ResHebU.depgen>;n=<ResHebU.depnum>;s=table ResHebU.Num{p_Ending__0=>table ResHebU.Gen{p_Ending__1=>str@0}}};"Ending";
lin FormalEnding:Letter.Ending=\Author@0->{g=Author@0.g;n=Author@0.n;s=table ResHebU.Num{p_FormalEnding__0=>table ResHebU.Gen{p_FormalEnding__1=>",в▒в⌡в▒в∙в⌠"++("в╗в▒"++"&-")++Author@0.s!$p_FormalEnding__0!$p_FormalEnding__1}}};"Author_0";
lin GoBankrupt:Letter.Sentence=\NounPhrase@0->{s=table ResHebU.DepNum{p_GoBankrupt__0=>table ResHebU.DepGen{p_GoBankrupt__1=>table ResHebU.Num{p_GoBankrupt__2=>table ResHebU.Gen{p_GoBankrupt__3=>NounPhrase@0.s++(table ResHebU.Num[(table ResHebU.Gen["в╓в╘в≤""в╓в╘в≤в■"]!(NounPhrase@0.g))(table ResHebU.Gen{p_GoBankrupt__5=>"в╓в╘в≤в∙"}!(NounPhrase@0.g))]!(NounPhrase@0.n)++"в╗в▓в°")}}}}};"NounPhrase_0 в╓в╘в≤ в╗в▓в°";
lincat Heading={g:ResHebU.Gen;n:ResHebU.Num;s:Str}={g=<ResHebU.masc>;n=<ResHebU.sg>;s=str@0};"Heading";
lin HelloRec:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s=table ResHebU.Num{p_HelloRec__0=>"в╘в°в∙в²"}!(Recipient@0.n)++Recipient@0.s};"Recipient_0";
lin Honour:Letter.Mode=\->{s=table ResHebU.DepNum[(table ResHebU.DepGen[(table ResHebU.Num[Hebrew.A''22 Hebrew.A''23])(table ResHebU.Num[Hebrew.A''25 Hebrew.A''26])(table ResHebU.Num[Hebrew.A''28 Hebrew.A''29])])(table ResHebU.DepGen[(table ResHebU.Num[Hebrew.A''22(table ResHebU.Gen[("в■в÷в÷в≥"++("в·в╙в⌡в▒в⌠в╙"++("в°в■в∙в⌠в≥в╒"++("в°в⌡в²"++"в╘"))))("в■в÷в÷в≥"++("в·в╙в⌡в▒в⌠"++("в°в■в∙в⌠в≥в╒"++("в°в⌡в÷"++"в╘"))))])])(table ResHebU.Num[Hebrew.A''25(table ResHebU.Gen[("в■в÷в÷в≥"++("в·в╙в⌡в▒в⌠"++("в°в■в∙в⌠в≥в╒"++("в°в⌡в²"++"в╘"))))("в■в÷в÷в≥"++("в·в╙в⌡в▒в⌠"++("в°в■в∙в⌠в≥в╒"++("в°в⌡в÷"++"в╘"))))])])(table ResHebU.Num[Hebrew.A''28(table ResHebU.Gen[("в■в÷в÷в≥"++("в·в╙в⌡в▒в⌠в╙"++("в°в■в∙в⌠в≥в╒"++("в°в⌡в²"++"в╘"))))("в■в÷в÷в≥"++("в·в╙в⌡в▒в⌠в╙"++("в°в■в∙в⌠в≥в╒"++("в°в⌡в÷"++"в╘"))))])])])(table ResHebU.DepGen[(table ResHebU.Num[(table ResHebU.Gen[("в■в÷в÷в∙"++("в·в╙в⌡в▒в⌠в∙в╙"++("в°в■в∙в⌠в≥в╒"++("в°в "++"в╘"))))("в■в÷в÷в∙"++("в·в╙в⌡в▒в⌠в≥в²"++("в°в■в∙в⌠в≥в╒"++("в°в "++"в╘"))))])Hebrew.A''23])(table ResHebU.Num[(table ResHebU.Gen{p_Honour__3=>"в■в÷в÷в∙"++("в·в╙в⌡в▒в⌠в≥в²"++("в°в■в∙в⌠в≥в╒"++("в°в "++"в╘")))})Hebrew.A''26])(table ResHebU.Num[(table ResHebU.Gen{p_Honour__3=>"в■в÷в÷в∙"++("в·в╙в⌡в▒в⌠в∙в╙"++("в°в■в∙в⌠в≥в╒"++("в°в "++"в╘")))})Hebrew.A''29])])]};"в■в÷в÷в≥ в·в╙в⌡в▒в⌠в╙ в°в■в∙в⌠в≥в╒ в°в  в╘";
lin ILoveYou:Letter.Sentence=\->{s=table ResHebU.DepNum[(table ResHebU.DepGen[(table ResHebU.Num[Hebrew.A''47 Hebrew.A''48])(table ResHebU.Num[Hebrew.A''50 Hebrew.A''51])(table ResHebU.Num[Hebrew.A''53 Hebrew.A''54])])(table ResHebU.DepGen[(table ResHebU.Num[Hebrew.A''47(table ResHebU.Gen[("в░в÷в≥"++("в░в∙в■в▒в╙"++"в░в╙в⌡в²"))("в░в÷в≥"++("в░в∙в■в▒"++"в░в╙в⌡в÷"))])])(table ResHebU.Num[Hebrew.A''50(table ResHebU.Gen[("в░в÷в≥"++("в░в∙в■в▒"++"в░в╙в⌡в²"))("в░в÷в≥"++("в░в∙в■в▒"++"в░в╙в⌡в÷"))])])(table ResHebU.Num[Hebrew.A''53(table ResHebU.Gen[("в░в÷в≥"++("в░в∙в■в▒в╙"++"в░в╙в⌡в²"))("в░в÷в≥"++("в░в∙в■в▒в╙"++"в░в╙в⌡в÷"))])])])(table ResHebU.DepGen[(table ResHebU.Num[(table ResHebU.Gen[("в░в÷в≈в÷в∙"++("в░в∙в■в▒в∙в╙"++"в░в∙в╙в "))("в░в÷в≈в÷в∙"++("в░в∙в■в▒в≥в²"++"в░в∙в╙в "))])Hebrew.A''48])(table ResHebU.Num[(table ResHebU.Gen{p_ILoveYou__3=>"в░в÷в≈в÷в∙"++("в░в∙в■в▒в≥в²"++"в░в∙в╙в ")})Hebrew.A''51])(table ResHebU.Num[(table ResHebU.Gen{p_ILoveYou__3=>"в░в÷в≈в÷в∙"++("в░в∙в■в▒в∙в╙"++"в░в∙в╙в ")})Hebrew.A''54])])]};"в░в÷в≥ в░в∙в■в▒в╙ в░в∙в╙в ";
lin InformalEnding:Letter.Ending=\Author@0->{g=Author@0.g;n=Author@0.n;s=table ResHebU.Num{p_InformalEnding__0=>table ResHebU.Gen{p_InformalEnding__1=>",в▒в▒в╗в⌡в■"++"&-"++Author@0.s!$p_InformalEnding__0!$p_InformalEnding__1}}};"Author_0";
lin JustHello:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s=table ResHebU.Num{p_JustHello__0=>"в╘в°в∙в²"}!(Recipient@0.n)};"Recipient_0";
lincat Letter={s:Str}={s=str@0};"Letter";
lincat Message={s:(ResHebU.DepNum=>(ResHebU.DepGen=>(ResHebU.Num=>(ResHebU.Gen=>Str))))}={s=table ResHebU.DepNum{p_Message__0=>table ResHebU.DepGen{p_Message__1=>table ResHebU.Num{p_Message__2=>table ResHebU.Gen{p_Message__3=>str@0}}}}};"Message";
lin MkLetter:Letter.Letter=\Heading@0,Message@1,Ending@2->{s=","++(Heading@0.s++("&-"++(Message@1.s!(Ending@2.n)!(Ending@2.g)!(Heading@0.n)!(Heading@0.g)++("&-"++Ending@2.s!(Heading@0.n)!(Heading@0.g)))))};", Heading_0 &- Message_1 &- Ending_2";
lincat Mode={s:(ResHebU.DepNum=>(ResHebU.DepGen=>(ResHebU.Num=>(ResHebU.Gen=>Str))))}={s=table ResHebU.DepNum{p_Mode__0=>table ResHebU.DepGen{p_Mode__1=>table ResHebU.Num{p_Mode__2=>table ResHebU.Gen{p_Mode__3=>str@0}}}}};"Mode";
lin ModeSent:Letter.Message=\Mode@0,Sentence@1->{s=table ResHebU.DepNum[(table ResHebU.DepGen[(table ResHebU.Num{p_ModeSent__2=>table ResHebU.Gen{p_ModeSent__3=>Mode@0.s!<ResHebU.depnum>!<ResHebU.depgen>!$p_ModeSent__2!$p_ModeSent__3++Sentence@1.s!<ResHebU.depnum>!<ResHebU.depgen>!$p_ModeSent__2!$p_ModeSent__3}})(table ResHebU.Num{p_ModeSent__2=>table ResHebU.Gen[(Mode@0.s!<ResHebU.depnum>!Hebrew.A''5!$p_ModeSent__2!<ResHebU.masc>++Sentence@1.s!<ResHebU.depnum>!Hebrew.A''5!$p_ModeSent__2!<ResHebU.masc>)(Mode@0.s!<ResHebU.depnum>!Hebrew.A''5!$p_ModeSent__2!<ResHebU.fem>++Sentence@1.s!<ResHebU.depnum>!Hebrew.A''5!$p_ModeSent__2!<ResHebU.fem>)]})(table ResHebU.Num{p_ModeSent__2=>table ResHebU.Gen[(Mode@0.s!<ResHebU.depnum>!Hebrew.A''79!$p_ModeSent__2!<ResHebU.masc>++Sentence@1.s!<ResHebU.depnum>!Hebrew.A''79!$p_ModeSent__2!<ResHebU.masc>)(Mode@0.s!<ResHebU.depnum>!Hebrew.A''79!$p_ModeSent__2!<ResHebU.fem>++Sentence@1.s!<ResHebU.depnum>!Hebrew.A''79!$p_ModeSent__2!<ResHebU.fem>)]})])(table ResHebU.DepGen[(table ResHebU.Num[(table ResHebU.Gen{p_ModeSent__3=>Mode@0.s!Hebrew.A''6!<ResHebU.depgen>!<ResHebU.sg>!$p_ModeSent__3++Sentence@1.s!Hebrew.A''6!<ResHebU.depgen>!<ResHebU.sg>!$p_ModeSent__3})(table ResHebU.Gen{p_ModeSent__3=>Mode@0.s!Hebrew.A''6!<ResHebU.depgen>!<ResHebU.pl>!$p_ModeSent__3++Sentence@1.s!Hebrew.A''6!<ResHebU.depgen>!<ResHebU.pl>!$p_ModeSent__3})])(table ResHebU.Num[(table ResHebU.Gen[(Mode@0.s!Hebrew.A''6!Hebrew.A''5!<ResHebU.sg>!<ResHebU.masc>++Sentence@1.s!Hebrew.A''6!Hebrew.A''5!<ResHebU.sg>!<ResHebU.masc>)(Mode@0.s!Hebrew.A''6!Hebrew.A''5!<ResHebU.sg>!<ResHebU.fem>++Sentence@1.s!Hebrew.A''6!Hebrew.A''5!<ResHebU.sg>!<ResHebU.fem>)])(table ResHebU.Gen[(Mode@0.s!Hebrew.A''6!Hebrew.A''5!<ResHebU.pl>!<ResHebU.masc>++Sentence@1.s!Hebrew.A''6!Hebrew.A''5!<ResHebU.pl>!<ResHebU.masc>)(Mode@0.s!Hebrew.A''6!Hebrew.A''5!<ResHebU.pl>!<ResHebU.fem>++Sentence@1.s!Hebrew.A''6!Hebrew.A''5!<ResHebU.pl>!<ResHebU.fem>)])])(table ResHebU.Num[(table ResHebU.Gen[(Mode@0.s!Hebrew.A''6!Hebrew.A''79!<ResHebU.sg>!<ResHebU.masc>++Sentence@1.s!Hebrew.A''6!Hebrew.A''79!<ResHebU.sg>!<ResHebU.masc>)(Mode@0.s!Hebrew.A''6!Hebrew.A''79!<ResHebU.sg>!<ResHebU.fem>++Sentence@1.s!Hebrew.A''6!Hebrew.A''79!<ResHebU.sg>!<ResHebU.fem>)])(table ResHebU.Gen[(Mode@0.s!Hebrew.A''6!Hebrew.A''79!<ResHebU.pl>!<ResHebU.masc>++Sentence@1.s!Hebrew.A''6!Hebrew.A''79!<ResHebU.pl>!<ResHebU.masc>)(Mode@0.s!Hebrew.A''6!Hebrew.A''79!<ResHebU.pl>!<ResHebU.fem>++Sentence@1.s!Hebrew.A''6!Hebrew.A''79!<ResHebU.pl>!<ResHebU.fem>)])])])(table ResHebU.DepGen[(table ResHebU.Num[(table ResHebU.Gen{p_ModeSent__3=>Mode@0.s!Hebrew.A''93!<ResHebU.depgen>!<ResHebU.sg>!$p_ModeSent__3++Sentence@1.s!Hebrew.A''93!<ResHebU.depgen>!<ResHebU.sg>!$p_ModeSent__3})(table ResHebU.Gen{p_ModeSent__3=>Mode@0.s!Hebrew.A''93!<ResHebU.depgen>!<ResHebU.pl>!$p_ModeSent__3++Sentence@1.s!Hebrew.A''93!<ResHebU.depgen>!<ResHebU.pl>!$p_ModeSent__3})])(table ResHebU.Num[(table ResHebU.Gen[(Mode@0.s!Hebrew.A''93!Hebrew.A''5!<ResHebU.sg>!<ResHebU.masc>++Sentence@1.s!Hebrew.A''93!Hebrew.A''5!<ResHebU.sg>!<ResHebU.masc>)(Mode@0.s!Hebrew.A''93!Hebrew.A''5!<ResHebU.sg>!<ResHebU.fem>++Sentence@1.s!Hebrew.A''93!Hebrew.A''5!<ResHebU.sg>!<ResHebU.fem>)])(table ResHebU.Gen[(Mode@0.s!Hebrew.A''93!Hebrew.A''5!<ResHebU.pl>!<ResHebU.masc>++Sentence@1.s!Hebrew.A''93!Hebrew.A''5!<ResHebU.pl>!<ResHebU.masc>)(Mode@0.s!Hebrew.A''93!Hebrew.A''5!<ResHebU.pl>!<ResHebU.fem>++Sentence@1.s!Hebrew.A''93!Hebrew.A''5!<ResHebU.pl>!<ResHebU.fem>)])])(table ResHebU.Num[(table ResHebU.Gen[(Mode@0.s!Hebrew.A''93!Hebrew.A''79!<ResHebU.sg>!<ResHebU.masc>++Sentence@1.s!Hebrew.A''93!Hebrew.A''79!<ResHebU.sg>!<ResHebU.masc>)(Mode@0.s!Hebrew.A''93!Hebrew.A''79!<ResHebU.sg>!<ResHebU.fem>++Sentence@1.s!Hebrew.A''93!Hebrew.A''79!<ResHebU.sg>!<ResHebU.fem>)])(table ResHebU.Gen[(Mode@0.s!Hebrew.A''93!Hebrew.A''79!<ResHebU.pl>!<ResHebU.masc>++Sentence@1.s!Hebrew.A''93!Hebrew.A''79!<ResHebU.pl>!<ResHebU.masc>)(Mode@0.s!Hebrew.A''93!Hebrew.A''79!<ResHebU.pl>!<ResHebU.fem>++Sentence@1.s!Hebrew.A''93!Hebrew.A''79!<ResHebU.pl>!<ResHebU.fem>)])])])]};"Mode_0 Sentence_1";
lin Mother:Letter.Author=\->{g=Hebrew.A''79;n=Hebrew.A''6;s=table ResHebU.Num{p_Mother__0=>table ResHebU.Gen{p_Mother__1=>"в░в·в░"}}};"{ResHebU.cgen} {ResHebU.fem}";
lin Name:Letter.Author=\String@0->{g=Hebrew.A''5;n=Hebrew.A''6;s=table ResHebU.Num{p_Name__0=>table ResHebU.Gen{p_Name__1=>String@0.s}}};"{ResHebU.cgen} {ResHebU.masc}";
lin NameHe:Letter.Recipient=\String@0->{g=<ResHebU.masc>;n=<ResHebU.sg>;s=String@0.s};"{ResHebU.masc}";
lin NameShe:Letter.Recipient=\String@0->{g=<ResHebU.fem>;n=<ResHebU.sg>;s=String@0.s};"{ResHebU.fem}";
lincat NounPhrase={g:ResHebU.Gen;n:ResHebU.Num;s:Str}={g=<ResHebU.masc>;n=<ResHebU.sg>;s=str@0};"NounPhrase";
lin OurCustomers:Letter.NounPhrase=\->{g=<ResHebU.masc>;n=<ResHebU.pl>;s="в°в╖в∙в≈в∙в╙в≥в÷в∙"};"{ResHebU.masc}";
lin PlainRec:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s=Recipient@0.s};"Recipient_0";
lin PlainSent:Letter.Message=\Sentence@0->{s=Sentence@0.s};"Sentence_0";
lincat Position={s:(ResHebU.Num=>(ResHebU.Gen=>Str))}={s=table ResHebU.Num{p_Position__0=>table ResHebU.Gen{p_Position__1=>str@0}}};"Position";
lin President:Letter.Author=\->{g=Hebrew.A''5;n=Hebrew.A''6;s=table ResHebU.Num{p_President__0=>table ResHebU.Gen{p_President__1=>"в÷в╘в≥в░"}}};"{ResHebU.cgen} {ResHebU.masc}";
lin ProjectManager:Letter.Position=\->{s=table ResHebU.Num[(table ResHebU.Gen[("в·в÷в■в°"++"в╓в╗в∙в≥в≥в╖в≤")("в·в÷в■в°в╙"++"в╓в╗в∙в≥в≥в╖в≤")])(table ResHebU.Gen[("в·в÷в■в°в≥"++"в╓в╗в∙в≥в≥в╖в≤")("в·в÷в■в°в∙в╙"++"в╓в╗в∙в≥в≥в╖в≤")])]};"в·в÷в■в° в╓в╗в∙в≥в≥в╖в≤";
lincat Recipient={g:ResHebU.Gen;n:ResHebU.Num;s:Str}={g=<ResHebU.masc>;n=<ResHebU.sg>;s=str@0};"Recipient";
lin Regret:Letter.Mode=\->{s=table ResHebU.DepNum[(table ResHebU.DepGen[(table ResHebU.Num[Hebrew.A''114 Hebrew.A''115])(table ResHebU.Num[Hebrew.A''117 Hebrew.A''118])(table ResHebU.Num[Hebrew.A''120 Hebrew.A''121])])(table ResHebU.DepGen[(table ResHebU.Num[Hebrew.A''114(table ResHebU.Gen[("в░в÷в≥"++("в·в╕в≤в╒в╗в╙"++("в°в■в∙в⌠в≥в╒"++("в°в⌡в²"++"в╘"))))("в░в÷в≥"++("в·в╕в≤в╒в╗"++("в°в■в∙в⌠в≥в╒"++("в°в⌡в÷"++"в╘"))))])])(table ResHebU.Num[Hebrew.A''117(table ResHebU.Gen[("в░в÷в≥"++("в·в╕в≤в╒в╗"++("в°в■в∙в⌠в≥в╒"++("в°в⌡в²"++"в╘"))))("в░в÷в≥"++("в·в╕в≤в╒в╗"++("в°в■в∙в⌠в≥в╒"++("в°в⌡в÷"++"в╘"))))])])(table ResHebU.Num[Hebrew.A''120(table ResHebU.Gen[("в░в÷в≥"++("в·в╕в≤в╒в╗в╙"++("в°в■в∙в⌠в≥в╒"++("в°в⌡в²"++"в╘"))))("в░в÷в≥"++("в·в╕в≤в╒в╗в╙"++("в°в■в∙в⌠в≥в╒"++("в°в⌡в÷"++"в╘"))))])])])(table ResHebU.DepGen[(table ResHebU.Num[(table ResHebU.Gen[("в░в÷в≈в÷в∙"++("в·в╕в≤в╒в╗в∙в╙"++("в°в■в∙в⌠в≥в╒"++("в°в "++"в╘"))))("в░в÷в≈в÷в∙"++("в·в╕в≤в╒в╗в≥в²"++("в°в■в∙в⌠в≥в╒"++("в°в "++"в╘"))))])Hebrew.A''115])(table ResHebU.Num[(table ResHebU.Gen{p_Regret__3=>"в░в÷в≈в÷в∙"++("в·в╕в≤в╒в╗в≥в²"++("в°в■в∙в⌠в≥в╒"++("в°в "++"в╘")))})Hebrew.A''118])(table ResHebU.Num[(table ResHebU.Gen{p_Regret__3=>"в░в÷в≈в÷в∙"++("в·в╕в≤в╒в╗в∙в╙"++("в°в■в∙в⌠в≥в╒"++("в°в "++"в╘")))})Hebrew.A''121])])]};"в░в÷в≥ в·в╕в≤в╒в╗в╙ в°в■в∙в⌠в≥в╒ в°в  в╘";
lin Senior:Letter.Position=\->{s=table ResHebU.Num[(table ResHebU.Gen{p_Senior__1=>"в≈в▒в╗"++"в▒в⌡в≥в╗"})(table ResHebU.Gen{p_Senior__1=>"в≈в▒в╗в≥в²"++"в▒в⌡в≥в╗в≥в²"})]};"в≈в▒в╗ в▒в⌡в≥в╗";
lincat Sentence={s:(ResHebU.DepNum=>(ResHebU.DepGen=>(ResHebU.Num=>(ResHebU.Gen=>Str))))}={s=table ResHebU.DepNum{p_Sentence__0=>table ResHebU.DepGen{p_Sentence__1=>table ResHebU.Num{p_Sentence__2=>table ResHebU.Gen{p_Sentence__3=>str@0}}}}};"Sentence";
lin Spouse:Letter.Author=\->{g=<ResHebU.depgen>;n=<ResHebU.depnum>;s=table ResHebU.Num[(table ResHebU.Gen["в░в≥в╘в╙в ""в▒в╒в°в "])(table ResHebU.Gen["в÷в╘в∙в╙в≥в⌡в²""в▒в╒в°в≥в⌡в÷"])]};"{ResHebU.depgen}";
}
resource ResHebU={flags coding=utf8;flags modulesize=n5;param DepGen=depgen|cgen ResHebU.Gen;
param DepNum=depnum|cnum ResHebU.Num;
param Gen=masc|fem;
param Kas=nom|dat|acc;
param Num=sg|pl;
}
abstract Letter={flags coding=utf8;flags modulesize=n42;cat Author[]=;
fun BePromoted:(h_:Letter.Position)->Letter.Sentence={};
fun ColleagueHe:Letter.Recipient={};
fun ColleagueShe:Letter.Recipient={};
fun ColleaguesHe:Letter.Recipient={};
fun ColleaguesShe:Letter.Recipient={};
fun Company:Letter.NounPhrase={};
fun Competitor:Letter.NounPhrase={};
fun DarlingHe:Letter.Recipient={};
fun DarlingShe:Letter.Recipient={};
fun Dean:Letter.Author={};
fun DearRec:(h_:Letter.Recipient)->Letter.Heading={};
cat Ending[]=;
fun FormalEnding:(h_:Letter.Author)->Letter.Ending={};
fun GoBankrupt:(h_:Letter.NounPhrase)->Letter.Sentence={};
cat Heading[]=;
fun HelloRec:(h_:Letter.Recipient)->Letter.Heading={};
fun Honour:Letter.Mode={};
fun ILoveYou:Letter.Sentence={};
fun InformalEnding:(h_:Letter.Author)->Letter.Ending={};
fun JustHello:(h_:Letter.Recipient)->Letter.Heading={};
cat Letter[]=;
cat Message[]=;
fun MkLetter:(h_:Letter.Heading)->(h_:Letter.Message)->(h_:Letter.Ending)->Letter.Letter={};
cat Mode[]=;
fun ModeSent:(h_:Letter.Mode)->(h_:Letter.Sentence)->Letter.Message={};
fun Mother:Letter.Author={};
fun Name:(h_:PredefAbs.String)->Letter.Author={};
fun NameHe:(h_:PredefAbs.String)->Letter.Recipient={};
fun NameShe:(h_:PredefAbs.String)->Letter.Recipient={};
cat NounPhrase[]=;
fun OurCustomers:Letter.NounPhrase={};
fun PlainRec:(h_:Letter.Recipient)->Letter.Heading={};
fun PlainSent:(h_:Letter.Sentence)->Letter.Message={};
cat Position[]=;
fun President:Letter.Author={};
fun ProjectManager:Letter.Position={};
cat Recipient[]=;
fun Regret:Letter.Mode={};
fun Senior:Letter.Position={};
cat Sentence[]=;
fun Spouse:Letter.Author={};
}
concrete Russian of Letter=open ResRusU in{flags coding=utf8;flags modulesize=n42;flags startcat=Letter;flags lexer=textlit;flags unlexer=textlit;oper A''21:Str=table ResRusU.Num["п≈п╢я─п╟п╡я│я┌п╡я┐п╧""п≈п╢я─п╟п╡я│я┌п╡я┐п╧я┌п╣"];
oper A''22:Str=table ResRusU.Gen{p_Honour__3=>"я▐"++"п╦п╪п╣я▌"++("я┤п╣я│я┌я▄"++("я│п╬п╬п╠я┴п╦я┌я▄"++"я┌п╣п╠п╣"++(","++"я┤я┌п╬")))};
oper A''23:Str=table ResRusU.Gen{p_Honour__3=>"п╪я▀"++"п╦п╪п╣п╣п╪"++("я┤п╣я│я┌я▄"++("я│п╬п╬п╠я┴п╦я┌я▄"++"п╡п╟п╪"++(","++"я┤я┌п╬")))};
oper A''33:Str=table ResRusU.Gen{p_ILoveYou__3=>"я▐"++("я┌п╣п╠я▐"++"п╩я▌п╠п╩я▌")};
oper A''34:Str=table ResRusU.Gen{p_ILoveYou__3=>"п╪я▀"++("п╡п╟я│"++"п╩я▌п╠п╦п╪")};
oper A''5:Str=<ResRusU.cgen<ResRusU.masc>>;
oper A''50:Str=<ResRusU.cgen<ResRusU.fem>>;
oper A''6:Str=<ResRusU.cnum<ResRusU.sg>>;
oper A''64:Str=<ResRusU.cnum<ResRusU.pl>>;
oper A''85:Str=table ResRusU.Gen[("я▐"++("п╡я▀п╫я┐п╤п╢п╣п╫п╟"++("я│п╬п╬п╠я┴п╦я┌я▄"++(","++"я┤я┌п╬"))))("я▐"++("п╡я▀п╫я┐п╤п╢п╣п╫"++("я│п╬п╬п╠я┴п╦я┌я▄"++(","++"я┤я┌п╬"))))];
oper A''86:Str=table ResRusU.Gen{p_Regret__3=>"п╡я▀"++("п╡я▀п╫я┐п╤п╢п╣п╫я▀"++("я│п╬п╬п╠я┴п╦я┌я▄"++(","++"я┤я┌п╬")))};
oper A''88:Str=table ResRusU.Gen{p_Regret__3=>"я▐"++("п╡я▀п╫я┐п╤п╢п╣п╫"++("я│п╬п╬п╠я┴п╦я┌я▄"++(","++"я┤я┌п╬")))};
oper A''90:Str=table ResRusU.Gen{p_Regret__3=>"я▐"++("п╡я▀п╫я┐п╤п╢п╣п╫п╟"++("я│п╬п╬п╠я┴п╦я┌я▄"++(","++"я┤я┌п╬")))};
lincat Author={g:ResRusU.DepGen;n:ResRusU.DepNum;s:(ResRusU.Num=>(ResRusU.Gen=>Str))}={g=<ResRusU.depgen>;n=<ResRusU.depnum>;s=table ResRusU.Num{p_Author__0=>table ResRusU.Gen{p_Author__1=>str@0}}};"Author";
lin BePromoted:Letter.Sentence=\Position@0->{s=table ResRusU.DepNum{p_BePromoted__0=>table ResRusU.DepGen{p_BePromoted__1=>table ResRusU.Num[(table ResRusU.Gen[("я┌я▀"++"п╠я▀п╩"++("п╫п╟п╥п╫п╟я┤п╣п╫"++Position@0.s!<ResRusU.sg>!<ResRusU.masc>))("я┌я▀"++"п╠я▀п╩п╟"++("п╫п╟п╥п╫п╟я┤п╣п╫п╟"++Position@0.s!<ResRusU.sg>!<ResRusU.fem>))])(table ResRusU.Gen{p_BePromoted__3=>"п╡я▀"++"п╠я▀п╩п╦"++("п╫п╟п╥п╫п╟я┤п╣п╫я▀"++Position@0.s!<ResRusU.pl>!$p_BePromoted__3)})]}}};"(я┌я▀ п╠я▀п╩)п╫п╟п╥п╫п╟я┤п╣п╫ Position_0";
lin ColleagueHe:Letter.Recipient=\->{g=<ResRusU.masc>;n=<ResRusU.sg>;s="п╨п╬п╩п╩п╣пЁп╟"};"{ResRusU.masc}";
lin ColleagueShe:Letter.Recipient=\->{g=<ResRusU.fem>;n=<ResRusU.sg>;s="п╨п╬п╩п╩п╣пЁп╟"};"{ResRusU.fem}";
lin ColleaguesHe:Letter.Recipient=\->{g=<ResRusU.masc>;n=<ResRusU.pl>;s="п╨п╬п╩п╩п╣пЁп╦"};"{ResRusU.masc}";
lin ColleaguesShe:Letter.Recipient=\->{g=<ResRusU.fem>;n=<ResRusU.pl>;s="п╨п╬п╩п╩п╣пЁп╦"};"{ResRusU.fem}";
lin Company:Letter.NounPhrase=\->{g=<ResRusU.fem>;n=<ResRusU.sg>;s="п╫п╟я┬п╣"++"п©я─п╣п╢п©я─п╦я▐я┌п╦п╣"};"{ResRusU.fem}";
lin Competitor:Letter.NounPhrase=\->{g=<ResRusU.masc>;n=<ResRusU.sg>;s="п╫п╟я┬"++"п╨п╬п╫п╨я┐я─п╣п╫я┌"};"{ResRusU.masc}";
lin DarlingHe:Letter.Recipient=\->{g=<ResRusU.masc>;n=<ResRusU.sg>;s="п╩я▌п╠п╦п╪я▀п╧"};"{ResRusU.masc}";
lin DarlingShe:Letter.Recipient=\->{g=<ResRusU.fem>;n=<ResRusU.sg>;s="п╩я▌п╠п╦п╪п╟я▐"};"{ResRusU.fem}";
lin Dean:Letter.Author=\->{g=Russian.A''5;n=Russian.A''6;s=table ResRusU.Num{p_Dean__0=>table ResRusU.Gen{p_Dean__1=>"п╢п╣п╨п╟п╫"}}};"{ResRusU.cgen} {ResRusU.masc}";
lin DearRec:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s=table ResRusU.Num[(table ResRusU.Gen["п■п╬я─п╬пЁп╬п╧""п■п╬я─п╬пЁп╟я▐"]!(Recipient@0.g))(table ResRusU.Gen{p_DearRec__1=>"п■п╬я─п╬пЁп╦п╣"}!(Recipient@0.g))]!(Recipient@0.n)++Recipient@0.s};"Recipient_0";
lincat Ending={g:ResRusU.DepGen;n:ResRusU.DepNum;s:(ResRusU.Num=>(ResRusU.Gen=>Str))}={g=<ResRusU.depgen>;n=<ResRusU.depnum>;s=table ResRusU.Num{p_Ending__0=>table ResRusU.Gen{p_Ending__1=>str@0}}};"Ending";
lin FormalEnding:Letter.Ending=\Author@0->{g=Author@0.g;n=Author@0.n;s=table ResRusU.Num{p_FormalEnding__0=>table ResRusU.Gen{p_FormalEnding__1=>"п║"++("п╫п╟п╦п╩я┐я┤я┬п╦п╪п╦"++("п©п╬п╤п╣п╩п╟п╫п╦я▐п╪п╦,"++"&-")++Author@0.s!$p_FormalEnding__0!$p_FormalEnding__1)}}};"Author_0";
lin GoBankrupt:Letter.Sentence=\NounPhrase@0->{s=table ResRusU.DepNum{p_GoBankrupt__0=>table ResRusU.DepGen{p_GoBankrupt__1=>table ResRusU.Num{p_GoBankrupt__2=>table ResRusU.Gen{p_GoBankrupt__3=>NounPhrase@0.s++table ResRusU.Num[(table ResRusU.Gen["п╬п╠п╟п╫п╨я─п╬я┌п╦п╩я│я▐""п╬п╠п╟п╫п╨я─п╬я┌п╦п╩п╬я│я▄"]!(NounPhrase@0.g))(table ResRusU.Gen{p_GoBankrupt__5=>"п╬п╠п╟п╫п╨я─п╬я┌п╦п╩п╦я│я▄"}!(NounPhrase@0.g))]!(NounPhrase@0.n)}}}}};"NounPhrase_0 п╬п╠п╟п╫п╨я─п╬я┌п╦п╩я│я▐";
lincat Heading={g:ResRusU.Gen;n:ResRusU.Num;s:Str}={g=<ResRusU.masc>;n=<ResRusU.sg>;s=str@0};"Heading";
lin HelloRec:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s=Russian.A''21!(Recipient@0.n)++Recipient@0.s};"Recipient_0";
lin Honour:Letter.Mode=\->{s=table ResRusU.DepNum[(table ResRusU.DepGen{p_Honour__1=>table ResRusU.Num[Russian.A''22 Russian.A''23]})(table ResRusU.DepGen{p_Honour__1=>table ResRusU.Num[Russian.A''22(table ResRusU.Gen{p_Honour__3=>"я▐"++"п╦п╪п╣я▌"++("я┤п╣я│я┌я▄"++("я│п╬п╬п╠я┴п╦я┌я▄"++"п╡п╟п╪"++(","++"я┤я┌п╬")))})]})(table ResRusU.DepGen{p_Honour__1=>table ResRusU.Num[(table ResRusU.Gen{p_Honour__3=>"п╪я▀"++"п╦п╪п╣п╣п╪"++("я┤п╣я│я┌я▄"++("я│п╬п╬п╠я┴п╦я┌я▄"++"я┌п╣п╠п╣"++(","++"я┤я┌п╬")))})Russian.A''23]})]};"(я▐ п╦п╪п╣я▌)я┤п╣я│я┌я▄ (я│п╬п╬п╠я┴п╦я┌я▄ я┌п╣п╠п╣), я┤я┌п╬";
lin ILoveYou:Letter.Sentence=\->{s=table ResRusU.DepNum[(table ResRusU.DepGen{p_ILoveYou__1=>table ResRusU.Num[Russian.A''33 Russian.A''34]})(table ResRusU.DepGen{p_ILoveYou__1=>table ResRusU.Num[Russian.A''33(table ResRusU.Gen{p_ILoveYou__3=>"я▐"++("п╡п╟я│"++"п╩я▌п╠п╩я▌")})]})(table ResRusU.DepGen{p_ILoveYou__1=>table ResRusU.Num[(table ResRusU.Gen{p_ILoveYou__3=>"п╪я▀"++("я┌п╣п╠я▐"++"п╩я▌п╠п╦п╪")})Russian.A''34]})]};"я▐ я┌п╣п╠я▐ п╩я▌п╠п╩я▌";
lin InformalEnding:Letter.Ending=\Author@0->{g=Author@0.g;n=Author@0.n;s=table ResRusU.Num{p_InformalEnding__0=>table ResRusU.Gen{p_InformalEnding__1=>"п║"++("п╢я─я┐п╤п╣я│п╨п╦п╪"++("п©я─п╦п╡п╣я┌п╬п╪,"++"&-"))++Author@0.s!$p_InformalEnding__0!$p_InformalEnding__1}}};"Author_0";
lin JustHello:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s=Russian.A''21!(Recipient@0.n)};"Recipient_0";
lincat Letter={s:Str}={s=str@0};"Letter";
lincat Message={s:(ResRusU.DepNum=>(ResRusU.DepGen=>(ResRusU.Num=>(ResRusU.Gen=>Str))))}={s=table ResRusU.DepNum{p_Message__0=>table ResRusU.DepGen{p_Message__1=>table ResRusU.Num{p_Message__2=>table ResRusU.Gen{p_Message__3=>str@0}}}}};"Message";
lin MkLetter:Letter.Letter=\Heading@0,Message@1,Ending@2->{s=Heading@0.s++(","++("&-"++(Message@1.s!(Ending@2.n)!(Ending@2.g)!(Heading@0.n)!(Heading@0.g)++("."++("&-"++Ending@2.s!(Heading@0.n)!(Heading@0.g))))))};"Heading_0 , &- Message_1 . &- Ending_2";
lincat Mode={s:(ResRusU.DepNum=>(ResRusU.DepGen=>(ResRusU.Num=>(ResRusU.Gen=>Str))))}={s=table ResRusU.DepNum{p_Mode__0=>table ResRusU.DepGen{p_Mode__1=>table ResRusU.Num{p_Mode__2=>table ResRusU.Gen{p_Mode__3=>str@0}}}}};"Mode";
lin ModeSent:Letter.Message=\Mode@0,Sentence@1->{s=table ResRusU.DepNum[(table ResRusU.DepGen[(table ResRusU.Num{p_ModeSent__2=>table ResRusU.Gen{p_ModeSent__3=>Mode@0.s!<ResRusU.depnum>!<ResRusU.depgen>!$p_ModeSent__2!$p_ModeSent__3++Sentence@1.s!<ResRusU.depnum>!<ResRusU.depgen>!$p_ModeSent__2!$p_ModeSent__3}})(table ResRusU.Num{p_ModeSent__2=>table ResRusU.Gen[(Mode@0.s!<ResRusU.depnum>!Russian.A''5!$p_ModeSent__2!<ResRusU.masc>++Sentence@1.s!<ResRusU.depnum>!Russian.A''5!$p_ModeSent__2!<ResRusU.masc>)(Mode@0.s!<ResRusU.depnum>!Russian.A''5!$p_ModeSent__2!<ResRusU.fem>++Sentence@1.s!<ResRusU.depnum>!Russian.A''5!$p_ModeSent__2!<ResRusU.fem>)]})(table ResRusU.Num{p_ModeSent__2=>table ResRusU.Gen[(Mode@0.s!<ResRusU.depnum>!Russian.A''50!$p_ModeSent__2!<ResRusU.masc>++Sentence@1.s!<ResRusU.depnum>!Russian.A''50!$p_ModeSent__2!<ResRusU.masc>)(Mode@0.s!<ResRusU.depnum>!Russian.A''50!$p_ModeSent__2!<ResRusU.fem>++Sentence@1.s!<ResRusU.depnum>!Russian.A''50!$p_ModeSent__2!<ResRusU.fem>)]})])(table ResRusU.DepGen[(table ResRusU.Num[(table ResRusU.Gen{p_ModeSent__3=>Mode@0.s!Russian.A''6!<ResRusU.depgen>!<ResRusU.sg>!$p_ModeSent__3++Sentence@1.s!Russian.A''6!<ResRusU.depgen>!<ResRusU.sg>!$p_ModeSent__3})(table ResRusU.Gen{p_ModeSent__3=>Mode@0.s!Russian.A''6!<ResRusU.depgen>!<ResRusU.pl>!$p_ModeSent__3++Sentence@1.s!Russian.A''6!<ResRusU.depgen>!<ResRusU.pl>!$p_ModeSent__3})])(table ResRusU.Num[(table ResRusU.Gen[(Mode@0.s!Russian.A''6!Russian.A''5!<ResRusU.sg>!<ResRusU.masc>++Sentence@1.s!Russian.A''6!Russian.A''5!<ResRusU.sg>!<ResRusU.masc>)(Mode@0.s!Russian.A''6!Russian.A''5!<ResRusU.sg>!<ResRusU.fem>++Sentence@1.s!Russian.A''6!Russian.A''5!<ResRusU.sg>!<ResRusU.fem>)])(table ResRusU.Gen[(Mode@0.s!Russian.A''6!Russian.A''5!<ResRusU.pl>!<ResRusU.masc>++Sentence@1.s!Russian.A''6!Russian.A''5!<ResRusU.pl>!<ResRusU.masc>)(Mode@0.s!Russian.A''6!Russian.A''5!<ResRusU.pl>!<ResRusU.fem>++Sentence@1.s!Russian.A''6!Russian.A''5!<ResRusU.pl>!<ResRusU.fem>)])])(table ResRusU.Num[(table ResRusU.Gen[(Mode@0.s!Russian.A''6!Russian.A''50!<ResRusU.sg>!<ResRusU.masc>++Sentence@1.s!Russian.A''6!Russian.A''50!<ResRusU.sg>!<ResRusU.masc>)(Mode@0.s!Russian.A''6!Russian.A''50!<ResRusU.sg>!<ResRusU.fem>++Sentence@1.s!Russian.A''6!Russian.A''50!<ResRusU.sg>!<ResRusU.fem>)])(table ResRusU.Gen[(Mode@0.s!Russian.A''6!Russian.A''50!<ResRusU.pl>!<ResRusU.masc>++Sentence@1.s!Russian.A''6!Russian.A''50!<ResRusU.pl>!<ResRusU.masc>)(Mode@0.s!Russian.A''6!Russian.A''50!<ResRusU.pl>!<ResRusU.fem>++Sentence@1.s!Russian.A''6!Russian.A''50!<ResRusU.pl>!<ResRusU.fem>)])])])(table ResRusU.DepGen[(table ResRusU.Num[(table ResRusU.Gen{p_ModeSent__3=>Mode@0.s!Russian.A''64!<ResRusU.depgen>!<ResRusU.sg>!$p_ModeSent__3++Sentence@1.s!Russian.A''64!<ResRusU.depgen>!<ResRusU.sg>!$p_ModeSent__3})(table ResRusU.Gen{p_ModeSent__3=>Mode@0.s!Russian.A''64!<ResRusU.depgen>!<ResRusU.pl>!$p_ModeSent__3++Sentence@1.s!Russian.A''64!<ResRusU.depgen>!<ResRusU.pl>!$p_ModeSent__3})])(table ResRusU.Num[(table ResRusU.Gen[(Mode@0.s!Russian.A''64!Russian.A''5!<ResRusU.sg>!<ResRusU.masc>++Sentence@1.s!Russian.A''64!Russian.A''5!<ResRusU.sg>!<ResRusU.masc>)(Mode@0.s!Russian.A''64!Russian.A''5!<ResRusU.sg>!<ResRusU.fem>++Sentence@1.s!Russian.A''64!Russian.A''5!<ResRusU.sg>!<ResRusU.fem>)])(table ResRusU.Gen[(Mode@0.s!Russian.A''64!Russian.A''5!<ResRusU.pl>!<ResRusU.masc>++Sentence@1.s!Russian.A''64!Russian.A''5!<ResRusU.pl>!<ResRusU.masc>)(Mode@0.s!Russian.A''64!Russian.A''5!<ResRusU.pl>!<ResRusU.fem>++Sentence@1.s!Russian.A''64!Russian.A''5!<ResRusU.pl>!<ResRusU.fem>)])])(table ResRusU.Num[(table ResRusU.Gen[(Mode@0.s!Russian.A''64!Russian.A''50!<ResRusU.sg>!<ResRusU.masc>++Sentence@1.s!Russian.A''64!Russian.A''50!<ResRusU.sg>!<ResRusU.masc>)(Mode@0.s!Russian.A''64!Russian.A''50!<ResRusU.sg>!<ResRusU.fem>++Sentence@1.s!Russian.A''64!Russian.A''50!<ResRusU.sg>!<ResRusU.fem>)])(table ResRusU.Gen[(Mode@0.s!Russian.A''64!Russian.A''50!<ResRusU.pl>!<ResRusU.masc>++Sentence@1.s!Russian.A''64!Russian.A''50!<ResRusU.pl>!<ResRusU.masc>)(Mode@0.s!Russian.A''64!Russian.A''50!<ResRusU.pl>!<ResRusU.fem>++Sentence@1.s!Russian.A''64!Russian.A''50!<ResRusU.pl>!<ResRusU.fem>)])])])]};"Mode_0 Sentence_1";
lin Mother:Letter.Author=\->{g=Russian.A''50;n=Russian.A''6;s=table ResRusU.Num{p_Mother__0=>table ResRusU.Gen{p_Mother__1=>"п╪п╟п╪п╟"}}};"{ResRusU.cgen} {ResRusU.fem}";
lin Name:Letter.Author=\String@0->{g=Russian.A''5;n=Russian.A''6;s=table ResRusU.Num{p_Name__0=>table ResRusU.Gen{p_Name__1=>String@0.s}}};"{ResRusU.cgen} {ResRusU.masc}";
lin NameHe:Letter.Recipient=\String@0->{g=<ResRusU.masc>;n=<ResRusU.sg>;s=String@0.s};"{ResRusU.masc}";
lin NameShe:Letter.Recipient=\String@0->{g=<ResRusU.fem>;n=<ResRusU.sg>;s=String@0.s};"{ResRusU.fem}";
lincat NounPhrase={g:ResRusU.Gen;n:ResRusU.Num;s:Str}={g=<ResRusU.masc>;n=<ResRusU.sg>;s=str@0};"NounPhrase";
lin OurCustomers:Letter.NounPhrase=\->{g=<ResRusU.masc>;n=<ResRusU.pl>;s="п╫п╟я┬п╦"++"п╨п╩п╦п╣п╫я┌я▀"};"{ResRusU.masc}";
lin PlainRec:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s=Recipient@0.s};"Recipient_0";
lin PlainSent:Letter.Message=\Sentence@0->{s=Sentence@0.s};"Sentence_0";
lincat Position={s:(ResRusU.Num=>(ResRusU.Gen=>Str))}={s=table ResRusU.Num{p_Position__0=>table ResRusU.Gen{p_Position__1=>str@0}}};"Position";
lin President:Letter.Author=\->{g=Russian.A''5;n=Russian.A''6;s=table ResRusU.Num{p_President__0=>table ResRusU.Gen{p_President__1=>"п©я─п╣п╥п╦п╢п╣п╫я┌"}}};"{ResRusU.cgen} {ResRusU.masc}";
lin ProjectManager:Letter.Position=\->{s=table ResRusU.Num[(table ResRusU.Gen{p_ProjectManager__1=>"п╪п╣п╫п╣п╢п╤п╣я─п╬п╪"++"п©я─п╬п╣п╨я┌п╟"})(table ResRusU.Gen{p_ProjectManager__1=>"п╪п╣п╫п╣п╢п╤п╣я─п╟п╪п╦"++"п©я─п╬п╣п╨я┌п╬п╡"})]};"п╪п╣п╫п╣п╢п╤п╣я─п╬п╪ п©я─п╬п╣п╨я┌п╟";
lincat Recipient={g:ResRusU.Gen;n:ResRusU.Num;s:Str}={g=<ResRusU.masc>;n=<ResRusU.sg>;s=str@0};"Recipient";
lin Regret:Letter.Mode=\->{s=table ResRusU.DepNum[(table ResRusU.DepGen[(table ResRusU.Num[Russian.A''85 Russian.A''86])(table ResRusU.Num[Russian.A''88 Russian.A''86])(table ResRusU.Num[Russian.A''90 Russian.A''86])])(table ResRusU.DepGen[(table ResRusU.Num{p_Regret__2=>Russian.A''85})(table ResRusU.Num{p_Regret__2=>Russian.A''88})(table ResRusU.Num{p_Regret__2=>Russian.A''90})])(table ResRusU.DepGen{p_Regret__1=>table ResRusU.Num{p_Regret__2=>Russian.A''86}})]};"я▐ п╡я▀п╫я┐п╤п╢п╣п╫п╟ я│п╬п╬п╠я┴п╦я┌я▄ , я┤я┌п╬";
lin Senior:Letter.Position=\->{s=table ResRusU.Num[(table ResRusU.Gen{p_Senior__1=>"я│я┌п╟я─я┬п╦п╪"++("п╫п╟я┐я┤п╫я▀п╪"++"я│п╬я┌я─я┐п╢п╫п╦п╨п╬п╪")})(table ResRusU.Gen{p_Senior__1=>"я│я┌п╟я─я┬п╦п╪п╦"++("п╫п╟я┐я┤п╫я▀п╪п╦"++"я│п╬я┌я─я┐п╢п╫п╦п╨п╟п╪п╦")})]};"я│я┌п╟я─я┬п╦п╪ п╫п╟я┐я┤п╫я▀п╪ я│п╬я┌я─я┐п╢п╫п╦п╨п╬п╪";
lincat Sentence={s:(ResRusU.DepNum=>(ResRusU.DepGen=>(ResRusU.Num=>(ResRusU.Gen=>Str))))}={s=table ResRusU.DepNum{p_Sentence__0=>table ResRusU.DepGen{p_Sentence__1=>table ResRusU.Num{p_Sentence__2=>table ResRusU.Gen{p_Sentence__3=>str@0}}}}};"Sentence";
lin Spouse:Letter.Author=\->{g=<ResRusU.depgen>;n=<ResRusU.depnum>;s=table ResRusU.Num[(table ResRusU.Gen[("я┌п╡п╬я▐"++"п╤п╣п╫п╟")("я┌п╡п╬п╧"++"п╪я┐п╤")])(table ResRusU.Gen[("п╡п╟я┬п╦"++"п╤п╣п╫я▀")("п╡п╟я┬п╦"++"п╪я┐п╤я▄я▐")])]};"{ResRusU.depgen}";
}
resource ResRusU={flags coding=utf8;flags modulesize=n5;param DepGen=depgen|cgen ResRusU.Gen;
param DepNum=depnum|cnum ResRusU.Num;
param Gen=masc|fem;
param Kas=nom|acc;
param Num=sg|pl;
}
concrete Finnish of Letter=open ResFin in{flags coding=utf8;flags modulesize=n42;flags startcat=Letter;flags lexer=textlit;flags unlexer=textlit;oper A''20:Str=table ResFin.Gen{p_Honour__3=>"minulla"++"on"++("kunnia"++("ilmoittaa"++"sinulle"++"ettц╓"))};
oper A''21:Str=table ResFin.Gen{p_Honour__3=>"meillц╓"++"on"++("kunnia"++("ilmoittaa"++"teille"++"ettц╓"))};
oper A''31:Str=table ResFin.Gen{p_ILoveYou__3=>"rakastan"++"sinua"};
oper A''32:Str=table ResFin.Gen{p_ILoveYou__3=>"rakastamme"++"teitц╓"};
oper A''48:Str=<ResFin.cgen<ResFin.fem>>;
oper A''5:Str=<ResFin.cgen<ResFin.masc>>;
oper A''6:Str=<ResFin.cnum<ResFin.sg>>;
oper A''62:Str=<ResFin.cnum<ResFin.pl>>;
oper A''83:Str=table ResFin.Gen{p_Regret__3=>"minun"++("on"++("valitettavasti"++"ilmoitettava")++"ettц╓")};
oper A''84:Str=table ResFin.Gen{p_Regret__3=>"meidц╓n"++("on"++("valitettavasti"++"ilmoitettava")++"ettц╓")};
lincat Author={g:ResFin.DepGen;n:ResFin.DepNum;s:(ResFin.Num=>(ResFin.Gen=>Str))}={g=<ResFin.depgen>;n=<ResFin.depnum>;s=table ResFin.Num{p_Author__0=>table ResFin.Gen{p_Author__1=>str@0}}};"Author";
lin BePromoted:Letter.Sentence=\Position@0->{s=table ResFin.DepNum{p_BePromoted__0=>table ResFin.DepGen{p_BePromoted__1=>table ResFin.Num[(table ResFin.Gen{p_BePromoted__3=>"sinut"++"on"++("ylennetty"++Position@0.s!<ResFin.sg>!$p_BePromoted__3)})(table ResFin.Gen{p_BePromoted__3=>"teidц╓t"++"on"++("ylennetty"++Position@0.s!<ResFin.pl>!$p_BePromoted__3)})]}}};"(sinut on)ylennetty Position_0";
lin ColleagueHe:Letter.Recipient=\->{g=<ResFin.masc>;n=<ResFin.sg>;s="kollega"};"{ResFin.masc}";
lin ColleagueShe:Letter.Recipient=\->{g=<ResFin.fem>;n=<ResFin.sg>;s="kollega"};"{ResFin.fem}";
lin ColleaguesHe:Letter.Recipient=\->{g=<ResFin.masc>;n=<ResFin.pl>;s="kollegat"};"{ResFin.masc}";
lin ColleaguesShe:Letter.Recipient=\->{g=<ResFin.fem>;n=<ResFin.pl>;s="kollegat"};"{ResFin.fem}";
lin Company:Letter.NounPhrase=\->{g=<ResFin.fem>;n=<ResFin.sg>;s="yrityksemme"};"{ResFin.fem}";
lin Competitor:Letter.NounPhrase=\->{g=<ResFin.masc>;n=<ResFin.sg>;s="pahin"++"kilpailijamme"};"{ResFin.masc}";
lin DarlingHe:Letter.Recipient=\->{g=<ResFin.masc>;n=<ResFin.sg>;s="kulta"};"{ResFin.masc}";
lin DarlingShe:Letter.Recipient=\->{g=<ResFin.fem>;n=<ResFin.sg>;s="kulta"};"{ResFin.fem}";
lin Dean:Letter.Author=\->{g=Finnish.A''5;n=Finnish.A''6;s=table ResFin.Num{p_Dean__0=>table ResFin.Gen{p_Dean__1=>"dekaani"}}};"{ResFin.cgen} {ResFin.masc}";
lin DearRec:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s=table ResFin.Num[(table ResFin.Gen{p_DearRec__1=>"rakas"}!(Recipient@0.g))(table ResFin.Gen{p_DearRec__1=>"rakkaat"}!(Recipient@0.g))]!(Recipient@0.n)++Recipient@0.s};"Recipient_0";
lincat Ending={g:ResFin.DepGen;n:ResFin.DepNum;s:(ResFin.Num=>(ResFin.Gen=>Str))}={g=<ResFin.depgen>;n=<ResFin.depnum>;s=table ResFin.Num{p_Ending__0=>table ResFin.Gen{p_Ending__1=>str@0}}};"Ending";
lin FormalEnding:Letter.Ending=\Author@0->{g=Author@0.g;n=Author@0.n;s=table ResFin.Num{p_FormalEnding__0=>table ResFin.Gen{p_FormalEnding__1=>"parhain"++("terveisin"++"&-")++Author@0.s!$p_FormalEnding__0!$p_FormalEnding__1}}};"Author_0";
lin GoBankrupt:Letter.Sentence=\NounPhrase@0->{s=table ResFin.DepNum{p_GoBankrupt__0=>table ResFin.DepGen{p_GoBankrupt__1=>table ResFin.Num{p_GoBankrupt__2=>table ResFin.Gen{p_GoBankrupt__3=>NounPhrase@0.s++(table ResFin.Num["on""ovat"]!(NounPhrase@0.n)++(table ResFin.Num["mennyt""menneet"]!(NounPhrase@0.n)++"konkurssiin"))}}}}};"NounPhrase_0 on mennyt konkurssiin";
lincat Heading={g:ResFin.Gen;n:ResFin.Num;s:Str}={g=<ResFin.masc>;n=<ResFin.sg>;s=str@0};"Heading";
lin HelloRec:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s="Terve"++Recipient@0.s};"Recipient_0";
lin Honour:Letter.Mode=\->{s=table ResFin.DepNum[(table ResFin.DepGen{p_Honour__1=>table ResFin.Num[Finnish.A''20 Finnish.A''21]})(table ResFin.DepGen{p_Honour__1=>table ResFin.Num[Finnish.A''20(table ResFin.Gen{p_Honour__3=>"minulla"++"on"++("kunnia"++("ilmoittaa"++"teille"++"ettц╓"))})]})(table ResFin.DepGen{p_Honour__1=>table ResFin.Num[(table ResFin.Gen{p_Honour__3=>"meillц╓"++"on"++("kunnia"++("ilmoittaa"++"sinulle"++"ettц╓"))})Finnish.A''21]})]};"(minulla on)kunnia (ilmoittaa sinulle)ettД";
lin ILoveYou:Letter.Sentence=\->{s=table ResFin.DepNum[(table ResFin.DepGen{p_ILoveYou__1=>table ResFin.Num[Finnish.A''31 Finnish.A''32]})(table ResFin.DepGen{p_ILoveYou__1=>table ResFin.Num[Finnish.A''31(table ResFin.Gen{p_ILoveYou__3=>"rakastan"++"teitц╓"})]})(table ResFin.DepGen{p_ILoveYou__1=>table ResFin.Num[(table ResFin.Gen{p_ILoveYou__3=>"rakastamme"++"sinua"})Finnish.A''32]})]};"rakastan sinua";
lin InformalEnding:Letter.Ending=\Author@0->{g=Author@0.g;n=Author@0.n;s=table ResFin.Num{p_InformalEnding__0=>table ResFin.Gen{p_InformalEnding__1=>"terveisin"++"&-"++Author@0.s!$p_InformalEnding__0!$p_InformalEnding__1}}};"Author_0";
lin JustHello:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s="Terve"};"Recipient_0";
lincat Letter={s:Str}={s=str@0};"Letter";
lincat Message={s:(ResFin.DepNum=>(ResFin.DepGen=>(ResFin.Num=>(ResFin.Gen=>Str))))}={s=table ResFin.DepNum{p_Message__0=>table ResFin.DepGen{p_Message__1=>table ResFin.Num{p_Message__2=>table ResFin.Gen{p_Message__3=>str@0}}}}};"Message";
lin MkLetter:Letter.Letter=\Heading@0,Message@1,Ending@2->{s=Heading@0.s++(","++("&-"++(Message@1.s!(Ending@2.n)!(Ending@2.g)!(Heading@0.n)!(Heading@0.g)++("."++("&-"++Ending@2.s!(Heading@0.n)!(Heading@0.g))))))};"Heading_0 , &- Message_1 . &- Ending_2";
lincat Mode={s:(ResFin.DepNum=>(ResFin.DepGen=>(ResFin.Num=>(ResFin.Gen=>Str))))}={s=table ResFin.DepNum{p_Mode__0=>table ResFin.DepGen{p_Mode__1=>table ResFin.Num{p_Mode__2=>table ResFin.Gen{p_Mode__3=>str@0}}}}};"Mode";
lin ModeSent:Letter.Message=\Mode@0,Sentence@1->{s=table ResFin.DepNum[(table ResFin.DepGen[(table ResFin.Num{p_ModeSent__2=>table ResFin.Gen{p_ModeSent__3=>Mode@0.s!<ResFin.depnum>!<ResFin.depgen>!$p_ModeSent__2!$p_ModeSent__3++Sentence@1.s!<ResFin.depnum>!<ResFin.depgen>!$p_ModeSent__2!$p_ModeSent__3}})(table ResFin.Num{p_ModeSent__2=>table ResFin.Gen[(Mode@0.s!<ResFin.depnum>!Finnish.A''5!$p_ModeSent__2!<ResFin.masc>++Sentence@1.s!<ResFin.depnum>!Finnish.A''5!$p_ModeSent__2!<ResFin.masc>)(Mode@0.s!<ResFin.depnum>!Finnish.A''5!$p_ModeSent__2!<ResFin.fem>++Sentence@1.s!<ResFin.depnum>!Finnish.A''5!$p_ModeSent__2!<ResFin.fem>)]})(table ResFin.Num{p_ModeSent__2=>table ResFin.Gen[(Mode@0.s!<ResFin.depnum>!Finnish.A''48!$p_ModeSent__2!<ResFin.masc>++Sentence@1.s!<ResFin.depnum>!Finnish.A''48!$p_ModeSent__2!<ResFin.masc>)(Mode@0.s!<ResFin.depnum>!Finnish.A''48!$p_ModeSent__2!<ResFin.fem>++Sentence@1.s!<ResFin.depnum>!Finnish.A''48!$p_ModeSent__2!<ResFin.fem>)]})])(table ResFin.DepGen[(table ResFin.Num[(table ResFin.Gen{p_ModeSent__3=>Mode@0.s!Finnish.A''6!<ResFin.depgen>!<ResFin.sg>!$p_ModeSent__3++Sentence@1.s!Finnish.A''6!<ResFin.depgen>!<ResFin.sg>!$p_ModeSent__3})(table ResFin.Gen{p_ModeSent__3=>Mode@0.s!Finnish.A''6!<ResFin.depgen>!<ResFin.pl>!$p_ModeSent__3++Sentence@1.s!Finnish.A''6!<ResFin.depgen>!<ResFin.pl>!$p_ModeSent__3})])(table ResFin.Num[(table ResFin.Gen[(Mode@0.s!Finnish.A''6!Finnish.A''5!<ResFin.sg>!<ResFin.masc>++Sentence@1.s!Finnish.A''6!Finnish.A''5!<ResFin.sg>!<ResFin.masc>)(Mode@0.s!Finnish.A''6!Finnish.A''5!<ResFin.sg>!<ResFin.fem>++Sentence@1.s!Finnish.A''6!Finnish.A''5!<ResFin.sg>!<ResFin.fem>)])(table ResFin.Gen[(Mode@0.s!Finnish.A''6!Finnish.A''5!<ResFin.pl>!<ResFin.masc>++Sentence@1.s!Finnish.A''6!Finnish.A''5!<ResFin.pl>!<ResFin.masc>)(Mode@0.s!Finnish.A''6!Finnish.A''5!<ResFin.pl>!<ResFin.fem>++Sentence@1.s!Finnish.A''6!Finnish.A''5!<ResFin.pl>!<ResFin.fem>)])])(table ResFin.Num[(table ResFin.Gen[(Mode@0.s!Finnish.A''6!Finnish.A''48!<ResFin.sg>!<ResFin.masc>++Sentence@1.s!Finnish.A''6!Finnish.A''48!<ResFin.sg>!<ResFin.masc>)(Mode@0.s!Finnish.A''6!Finnish.A''48!<ResFin.sg>!<ResFin.fem>++Sentence@1.s!Finnish.A''6!Finnish.A''48!<ResFin.sg>!<ResFin.fem>)])(table ResFin.Gen[(Mode@0.s!Finnish.A''6!Finnish.A''48!<ResFin.pl>!<ResFin.masc>++Sentence@1.s!Finnish.A''6!Finnish.A''48!<ResFin.pl>!<ResFin.masc>)(Mode@0.s!Finnish.A''6!Finnish.A''48!<ResFin.pl>!<ResFin.fem>++Sentence@1.s!Finnish.A''6!Finnish.A''48!<ResFin.pl>!<ResFin.fem>)])])])(table ResFin.DepGen[(table ResFin.Num[(table ResFin.Gen{p_ModeSent__3=>Mode@0.s!Finnish.A''62!<ResFin.depgen>!<ResFin.sg>!$p_ModeSent__3++Sentence@1.s!Finnish.A''62!<ResFin.depgen>!<ResFin.sg>!$p_ModeSent__3})(table ResFin.Gen{p_ModeSent__3=>Mode@0.s!Finnish.A''62!<ResFin.depgen>!<ResFin.pl>!$p_ModeSent__3++Sentence@1.s!Finnish.A''62!<ResFin.depgen>!<ResFin.pl>!$p_ModeSent__3})])(table ResFin.Num[(table ResFin.Gen[(Mode@0.s!Finnish.A''62!Finnish.A''5!<ResFin.sg>!<ResFin.masc>++Sentence@1.s!Finnish.A''62!Finnish.A''5!<ResFin.sg>!<ResFin.masc>)(Mode@0.s!Finnish.A''62!Finnish.A''5!<ResFin.sg>!<ResFin.fem>++Sentence@1.s!Finnish.A''62!Finnish.A''5!<ResFin.sg>!<ResFin.fem>)])(table ResFin.Gen[(Mode@0.s!Finnish.A''62!Finnish.A''5!<ResFin.pl>!<ResFin.masc>++Sentence@1.s!Finnish.A''62!Finnish.A''5!<ResFin.pl>!<ResFin.masc>)(Mode@0.s!Finnish.A''62!Finnish.A''5!<ResFin.pl>!<ResFin.fem>++Sentence@1.s!Finnish.A''62!Finnish.A''5!<ResFin.pl>!<ResFin.fem>)])])(table ResFin.Num[(table ResFin.Gen[(Mode@0.s!Finnish.A''62!Finnish.A''48!<ResFin.sg>!<ResFin.masc>++Sentence@1.s!Finnish.A''62!Finnish.A''48!<ResFin.sg>!<ResFin.masc>)(Mode@0.s!Finnish.A''62!Finnish.A''48!<ResFin.sg>!<ResFin.fem>++Sentence@1.s!Finnish.A''62!Finnish.A''48!<ResFin.sg>!<ResFin.fem>)])(table ResFin.Gen[(Mode@0.s!Finnish.A''62!Finnish.A''48!<ResFin.pl>!<ResFin.masc>++Sentence@1.s!Finnish.A''62!Finnish.A''48!<ResFin.pl>!<ResFin.masc>)(Mode@0.s!Finnish.A''62!Finnish.A''48!<ResFin.pl>!<ResFin.fem>++Sentence@1.s!Finnish.A''62!Finnish.A''48!<ResFin.pl>!<ResFin.fem>)])])])]};"Mode_0 Sentence_1";
lin Mother:Letter.Author=\->{g=Finnish.A''48;n=Finnish.A''6;s=table ResFin.Num{p_Mother__0=>table ResFin.Gen{p_Mother__1=>"ц╓iti"}}};"{ResFin.cgen} {ResFin.fem}";
lin Name:Letter.Author=\String@0->{g=Finnish.A''5;n=Finnish.A''6;s=table ResFin.Num{p_Name__0=>table ResFin.Gen{p_Name__1=>String@0.s}}};"{ResFin.cgen} {ResFin.masc}";
lin NameHe:Letter.Recipient=\String@0->{g=<ResFin.masc>;n=<ResFin.sg>;s=String@0.s};"{ResFin.masc}";
lin NameShe:Letter.Recipient=\String@0->{g=<ResFin.fem>;n=<ResFin.sg>;s=String@0.s};"{ResFin.fem}";
lincat NounPhrase={g:ResFin.Gen;n:ResFin.Num;s:Str}={g=<ResFin.masc>;n=<ResFin.sg>;s=str@0};"NounPhrase";
lin OurCustomers:Letter.NounPhrase=\->{g=<ResFin.masc>;n=<ResFin.pl>;s="asiakkaamme"};"{ResFin.masc}";
lin PlainRec:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s=Recipient@0.s};"Recipient_0";
lin PlainSent:Letter.Message=\Sentence@0->{s=Sentence@0.s};"Sentence_0";
lincat Position={s:(ResFin.Num=>(ResFin.Gen=>Str))}={s=table ResFin.Num{p_Position__0=>table ResFin.Gen{p_Position__1=>str@0}}};"Position";
lin President:Letter.Author=\->{g=Finnish.A''5;n=Finnish.A''6;s=table ResFin.Num{p_President__0=>table ResFin.Gen{p_President__1=>"presidentti"}}};"{ResFin.cgen} {ResFin.masc}";
lin ProjectManager:Letter.Position=\->{s=table ResFin.Num[(table ResFin.Gen{p_ProjectManager__1=>"projektipц╓ц╓llikц╤ksi"})(table ResFin.Gen{p_ProjectManager__1=>"projektipц╓ц╓llikц╤iksi"})]};"projektipДДllikЖksi";
lincat Recipient={g:ResFin.Gen;n:ResFin.Num;s:Str}={g=<ResFin.masc>;n=<ResFin.sg>;s=str@0};"Recipient";
lin Regret:Letter.Mode=\->{s=table ResFin.DepNum[(table ResFin.DepGen{p_Regret__1=>table ResFin.Num[Finnish.A''83 Finnish.A''84]})(table ResFin.DepGen{p_Regret__1=>table ResFin.Num{p_Regret__2=>Finnish.A''83}})(table ResFin.DepGen{p_Regret__1=>table ResFin.Num{p_Regret__2=>Finnish.A''84}})]};"minun (on valitettavasti ilmoitettava)ettД";
lin Senior:Letter.Position=\->{s=table ResFin.Num[(table ResFin.Gen{p_Senior__1=>"vanhemmaksi"++"tutkijaksi"})(table ResFin.Gen{p_Senior__1=>"vanhemmiksi"++"tutkijoiksi"})]};"vanhemmaksi tutkijaksi";
lincat Sentence={s:(ResFin.DepNum=>(ResFin.DepGen=>(ResFin.Num=>(ResFin.Gen=>Str))))}={s=table ResFin.DepNum{p_Sentence__0=>table ResFin.DepGen{p_Sentence__1=>table ResFin.Num{p_Sentence__2=>table ResFin.Gen{p_Sentence__3=>str@0}}}}};"Sentence";
lin Spouse:Letter.Author=\->{g=<ResFin.depgen>;n=<ResFin.depnum>;s=table ResFin.Num[(table ResFin.Gen["vaimosi""miehesi"])(table ResFin.Gen["vaimonne""miehenne"])]};"{ResFin.depgen}";
}
resource ResFin={flags coding=utf8;flags modulesize=n5;param DepGen=depgen|cgen ResFin.Gen;
param DepNum=depnum|cnum ResFin.Num;
param Gen=masc|fem;
param Kas=nom|acc;
param Num=sg|pl;
}
concrete Swedish of Letter=open ResSve in{flags coding=utf8;flags modulesize=n42;flags startcat=Letter;flags lexer=textlit;flags unlexer=textlit;oper A''17:Str=table ResSve.Sex{p_Honour__3=>"jag"++("har"++("ц╓ran"++("att"++"meddela"))++("dig"++"att"))};
oper A''18:Str=table ResSve.Sex{p_Honour__3=>"vi"++("har"++("ц╓ran"++("att"++"meddela"))++("er"++"att"))};
oper A''28:Str=table ResSve.Sex{p_ILoveYou__3=>"jag"++("ц╓lskar"++"dig")};
oper A''29:Str=table ResSve.Sex{p_ILoveYou__3=>"vi"++("ц╓lskar"++"er")};
oper A''5:Str=<ResSve.cnum<ResSve.sg>>;
oper A''53:Str=<ResSve.cnum<ResSve.pl>>;
oper A''71:Str=table ResSve.Sex{p_Regret__3=>"jag"++("mц╔ste"++("tyvц╓rr"++"meddela")++("dig"++"att"))};
oper A''72:Str=table ResSve.Sex{p_Regret__3=>"vi"++("mц╔ste"++("tyvц╓rr"++"meddela")++("er"++"att"))};
lincat Author={n:ResSve.DepNum;s:(ResSve.Num=>(ResSve.Sex=>Str));x:ResSve.Sex}={n=<ResSve.depnum>;s=table ResSve.Num{p_Author__0=>table ResSve.Sex{p_Author__1=>str@0}};x=<ResSve.masc>};"Author";
lin BePromoted:Letter.Sentence=\Position@0->{s=table ResSve.DepNum{p_BePromoted__0=>table ResSve.Sex{p_BePromoted__1=>table ResSve.Num[(table ResSve.Sex{p_BePromoted__3=>"du"++("har"++"blivit"++("befordrad"++("till"++Position@0.s!<ResSve.sg>!$p_BePromoted__3)))})(table ResSve.Sex{p_BePromoted__3=>"ni"++("har"++"blivit"++("befordrade"++("till"++Position@0.s!<ResSve.pl>!$p_BePromoted__3)))})]}}};"du (har blivit)befordrad till Position_0";
lin ColleagueHe:Letter.Recipient=\->{n=<ResSve.sg>;s="kollega";x=<ResSve.masc>};"{ResSve.sg}";
lin ColleagueShe:Letter.Recipient=\->{n=<ResSve.sg>;s="kollega";x=<ResSve.fem>};"{ResSve.sg}";
lin ColleaguesHe:Letter.Recipient=\->{n=<ResSve.pl>;s="kollegor";x=<ResSve.masc>};"{ResSve.pl}";
lin ColleaguesShe:Letter.Recipient=\->{n=<ResSve.pl>;s="kollegor";x=<ResSve.fem>};"{ResSve.pl}";
lin Company:Letter.NounPhrase=\->{g=<ResSve.ett>;n=<ResSve.sg>;s="vц╔rt"++"fц╤retag"};"{ResSve.ett}";
lin Competitor:Letter.NounPhrase=\->{g=<ResSve.en>;n=<ResSve.sg>;s="vц╔r"++("vц╓rsta"++"konkurrent")};"{ResSve.en}";
lin DarlingHe:Letter.Recipient=\->{n=<ResSve.sg>;s="ц╓lskling";x=<ResSve.masc>};"{ResSve.sg}";
lin DarlingShe:Letter.Recipient=\->{n=<ResSve.sg>;s="ц╓lskling";x=<ResSve.fem>};"{ResSve.sg}";
lin Dean:Letter.Author=\->{n=Swedish.A''5;s=table ResSve.Num{p_Dean__0=>table ResSve.Sex{p_Dean__1=>"Dekanus"}};x=<ResSve.masc>};"{ResSve.cnum} {ResSve.sg}";
lin DearRec:Letter.Heading=\Recipient@0->{n=Recipient@0.n;s=table ResSve.Num[(table ResSve.Sex["Kц╓re""Kц╓ra"]!(Recipient@0.x))(table ResSve.Sex{p_DearRec__1=>"Kц╓ra"}!(Recipient@0.x))]!(Recipient@0.n)++Recipient@0.s;x=Recipient@0.x};"Recipient_0";
lincat Ending={n:ResSve.DepNum;s:(ResSve.Num=>(ResSve.Sex=>Str));x:ResSve.Sex}={n=<ResSve.depnum>;s=table ResSve.Num{p_Ending__0=>table ResSve.Sex{p_Ending__1=>str@0}};x=<ResSve.masc>};"Ending";
lin FormalEnding:Letter.Ending=\Author@0->{n=Author@0.n;s=table ResSve.Num{p_FormalEnding__0=>table ResSve.Sex{p_FormalEnding__1=>"Med"++("vц╓nlig"++("hц╓lsning"++"&-"))++Author@0.s!$p_FormalEnding__0!$p_FormalEnding__1}};x=Author@0.x};"Author_0";
lin GoBankrupt:Letter.Sentence=\NounPhrase@0->{s=table ResSve.DepNum{p_GoBankrupt__0=>table ResSve.Sex{p_GoBankrupt__1=>table ResSve.Num{p_GoBankrupt__2=>table ResSve.Sex{p_GoBankrupt__3=>NounPhrase@0.s++("har"++("gц╔tt"++("i"++"konkurs")))}}}}};"NounPhrase_0 har gЕtt i konkurs";
lincat Heading={n:ResSve.Num;s:Str;x:ResSve.Sex}={n=<ResSve.sg>;s=str@0;x=<ResSve.masc>};"Heading";
lin HelloRec:Letter.Heading=\Recipient@0->{n=Recipient@0.n;s="Hej"++Recipient@0.s;x=Recipient@0.x};"Recipient_0";
lin Honour:Letter.Mode=\->{s=table ResSve.DepNum[(table ResSve.Sex{p_Honour__1=>table ResSve.Num[Swedish.A''17 Swedish.A''18]})(table ResSve.Sex{p_Honour__1=>table ResSve.Num[Swedish.A''17(table ResSve.Sex{p_Honour__3=>"jag"++("har"++("ц╓ran"++("att"++"meddela"))++("er"++"att"))})]})(table ResSve.Sex{p_Honour__1=>table ResSve.Num[(table ResSve.Sex{p_Honour__3=>"vi"++("har"++("ц╓ran"++("att"++"meddela"))++("dig"++"att"))})Swedish.A''18]})]};"jag (har Дran att meddela)dig att";
lin ILoveYou:Letter.Sentence=\->{s=table ResSve.DepNum[(table ResSve.Sex{p_ILoveYou__1=>table ResSve.Num[Swedish.A''28 Swedish.A''29]})(table ResSve.Sex{p_ILoveYou__1=>table ResSve.Num[Swedish.A''28(table ResSve.Sex{p_ILoveYou__3=>"jag"++("ц╓lskar"++"er")})]})(table ResSve.Sex{p_ILoveYou__1=>table ResSve.Num[(table ResSve.Sex{p_ILoveYou__3=>"vi"++("ц╓lskar"++"dig")})Swedish.A''29]})]};"jag Дlskar dig";
lin InformalEnding:Letter.Ending=\Author@0->{n=Author@0.n;s=table ResSve.Num{p_InformalEnding__0=>table ResSve.Sex{p_InformalEnding__1=>"Med"++("hц╓lsningar"++"&-")++Author@0.s!$p_InformalEnding__0!$p_InformalEnding__1}};x=Author@0.x};"Author_0";
lin JustHello:Letter.Heading=\Recipient@0->{n=Recipient@0.n;s="Hej";x=Recipient@0.x};"Recipient_0";
lincat Letter={s:Str}={s=str@0};"Brev";
lincat Message={s:(ResSve.DepNum=>(ResSve.Sex=>(ResSve.Num=>(ResSve.Sex=>Str))))}={s=table ResSve.DepNum{p_Message__0=>table ResSve.Sex{p_Message__1=>table ResSve.Num{p_Message__2=>table ResSve.Sex{p_Message__3=>str@0}}}}};"Message";
lin MkLetter:Letter.Letter=\Heading@0,Message@1,Ending@2->{s=Heading@0.s++(","++("&-"++(Message@1.s!(Ending@2.n)!(Ending@2.x)!(Heading@0.n)!(Heading@0.x)++("."++("&-"++Ending@2.s!(Heading@0.n)!(Heading@0.x))))))};"brevmall";
lincat Mode={s:(ResSve.DepNum=>(ResSve.Sex=>(ResSve.Num=>(ResSve.Sex=>Str))))}={s=table ResSve.DepNum{p_Mode__0=>table ResSve.Sex{p_Mode__1=>table ResSve.Num{p_Mode__2=>table ResSve.Sex{p_Mode__3=>str@0}}}}};"Mode";
lin ModeSent:Letter.Message=\Mode@0,Sentence@1->{s=table ResSve.DepNum[(table ResSve.Sex[(table ResSve.Num{p_ModeSent__2=>table ResSve.Sex[(Mode@0.s!<ResSve.depnum>!<ResSve.masc>!$p_ModeSent__2!<ResSve.masc>++Sentence@1.s!<ResSve.depnum>!<ResSve.masc>!$p_ModeSent__2!<ResSve.masc>)(Mode@0.s!<ResSve.depnum>!<ResSve.masc>!$p_ModeSent__2!<ResSve.fem>++Sentence@1.s!<ResSve.depnum>!<ResSve.masc>!$p_ModeSent__2!<ResSve.fem>)]})(table ResSve.Num{p_ModeSent__2=>table ResSve.Sex[(Mode@0.s!<ResSve.depnum>!<ResSve.fem>!$p_ModeSent__2!<ResSve.masc>++Sentence@1.s!<ResSve.depnum>!<ResSve.fem>!$p_ModeSent__2!<ResSve.masc>)(Mode@0.s!<ResSve.depnum>!<ResSve.fem>!$p_ModeSent__2!<ResSve.fem>++Sentence@1.s!<ResSve.depnum>!<ResSve.fem>!$p_ModeSent__2!<ResSve.fem>)]})])(table ResSve.Sex[(table ResSve.Num[(table ResSve.Sex[(Mode@0.s!Swedish.A''5!<ResSve.masc>!<ResSve.sg>!<ResSve.masc>++Sentence@1.s!Swedish.A''5!<ResSve.masc>!<ResSve.sg>!<ResSve.masc>)(Mode@0.s!Swedish.A''5!<ResSve.masc>!<ResSve.sg>!<ResSve.fem>++Sentence@1.s!Swedish.A''5!<ResSve.masc>!<ResSve.sg>!<ResSve.fem>)])(table ResSve.Sex[(Mode@0.s!Swedish.A''5!<ResSve.masc>!<ResSve.pl>!<ResSve.masc>++Sentence@1.s!Swedish.A''5!<ResSve.masc>!<ResSve.pl>!<ResSve.masc>)(Mode@0.s!Swedish.A''5!<ResSve.masc>!<ResSve.pl>!<ResSve.fem>++Sentence@1.s!Swedish.A''5!<ResSve.masc>!<ResSve.pl>!<ResSve.fem>)])])(table ResSve.Num[(table ResSve.Sex[(Mode@0.s!Swedish.A''5!<ResSve.fem>!<ResSve.sg>!<ResSve.masc>++Sentence@1.s!Swedish.A''5!<ResSve.fem>!<ResSve.sg>!<ResSve.masc>)(Mode@0.s!Swedish.A''5!<ResSve.fem>!<ResSve.sg>!<ResSve.fem>++Sentence@1.s!Swedish.A''5!<ResSve.fem>!<ResSve.sg>!<ResSve.fem>)])(table ResSve.Sex[(Mode@0.s!Swedish.A''5!<ResSve.fem>!<ResSve.pl>!<ResSve.masc>++Sentence@1.s!Swedish.A''5!<ResSve.fem>!<ResSve.pl>!<ResSve.masc>)(Mode@0.s!Swedish.A''5!<ResSve.fem>!<ResSve.pl>!<ResSve.fem>++Sentence@1.s!Swedish.A''5!<ResSve.fem>!<ResSve.pl>!<ResSve.fem>)])])])(table ResSve.Sex[(table ResSve.Num[(table ResSve.Sex[(Mode@0.s!Swedish.A''53!<ResSve.masc>!<ResSve.sg>!<ResSve.masc>++Sentence@1.s!Swedish.A''53!<ResSve.masc>!<ResSve.sg>!<ResSve.masc>)(Mode@0.s!Swedish.A''53!<ResSve.masc>!<ResSve.sg>!<ResSve.fem>++Sentence@1.s!Swedish.A''53!<ResSve.masc>!<ResSve.sg>!<ResSve.fem>)])(table ResSve.Sex[(Mode@0.s!Swedish.A''53!<ResSve.masc>!<ResSve.pl>!<ResSve.masc>++Sentence@1.s!Swedish.A''53!<ResSve.masc>!<ResSve.pl>!<ResSve.masc>)(Mode@0.s!Swedish.A''53!<ResSve.masc>!<ResSve.pl>!<ResSve.fem>++Sentence@1.s!Swedish.A''53!<ResSve.masc>!<ResSve.pl>!<ResSve.fem>)])])(table ResSve.Num[(table ResSve.Sex[(Mode@0.s!Swedish.A''53!<ResSve.fem>!<ResSve.sg>!<ResSve.masc>++Sentence@1.s!Swedish.A''53!<ResSve.fem>!<ResSve.sg>!<ResSve.masc>)(Mode@0.s!Swedish.A''53!<ResSve.fem>!<ResSve.sg>!<ResSve.fem>++Sentence@1.s!Swedish.A''53!<ResSve.fem>!<ResSve.sg>!<ResSve.fem>)])(table ResSve.Sex[(Mode@0.s!Swedish.A''53!<ResSve.fem>!<ResSve.pl>!<ResSve.masc>++Sentence@1.s!Swedish.A''53!<ResSve.fem>!<ResSve.pl>!<ResSve.masc>)(Mode@0.s!Swedish.A''53!<ResSve.fem>!<ResSve.pl>!<ResSve.fem>++Sentence@1.s!Swedish.A''53!<ResSve.fem>!<ResSve.pl>!<ResSve.fem>)])])])]};"Mode_0 Sentence_1";
lin Mother:Letter.Author=\->{n=Swedish.A''5;s=table ResSve.Num{p_Mother__0=>table ResSve.Sex{p_Mother__1=>"Mamma"}};x=<ResSve.fem>};"{ResSve.cnum} {ResSve.sg}";
lin Name:Letter.Author=\String@0->{n=Swedish.A''5;s=table ResSve.Num{p_Name__0=>table ResSve.Sex{p_Name__1=>String@0.s}};x=<ResSve.masc>};"{ResSve.cnum} {ResSve.sg}";
lin NameHe:Letter.Recipient=\String@0->{n=<ResSve.sg>;s=String@0.s;x=<ResSve.masc>};"{ResSve.sg}";
lin NameShe:Letter.Recipient=\String@0->{n=<ResSve.sg>;s=String@0.s;x=<ResSve.fem>};"{ResSve.sg}";
lincat NounPhrase={g:ResSve.Gen;n:ResSve.Num;s:Str}={g=<ResSve.en>;n=<ResSve.sg>;s=str@0};"NounPhrase";
lin OurCustomers:Letter.NounPhrase=\->{g=<ResSve.en>;n=<ResSve.pl>;s="vц╔ra"++"kunder"};"{ResSve.en}";
lin PlainRec:Letter.Heading=\Recipient@0->{n=Recipient@0.n;s=Recipient@0.s;x=Recipient@0.x};"Recipient_0";
lin PlainSent:Letter.Message=\Sentence@0->{s=Sentence@0.s};"Sentence_0";
lincat Position={s:(ResSve.Num=>(ResSve.Sex=>Str))}={s=table ResSve.Num{p_Position__0=>table ResSve.Sex{p_Position__1=>str@0}}};"Position";
lin President:Letter.Author=\->{n=Swedish.A''5;s=table ResSve.Num{p_President__0=>table ResSve.Sex{p_President__1=>"Presidenten"}};x=<ResSve.masc>};"{ResSve.cnum} {ResSve.sg}";
lin ProjectManager:Letter.Position=\->{s=table ResSve.Num[(table ResSve.Sex{p_ProjectManager__1=>"projektchef"})(table ResSve.Sex{p_ProjectManager__1=>"projektchefer"})]};"projektchef";
lincat Recipient={n:ResSve.Num;s:Str;x:ResSve.Sex}={n=<ResSve.sg>;s=str@0;x=<ResSve.masc>};"Recipient";
lin Regret:Letter.Mode=\->{s=table ResSve.DepNum[(table ResSve.Sex{p_Regret__1=>table ResSve.Num[Swedish.A''71 Swedish.A''72]})(table ResSve.Sex{p_Regret__1=>table ResSve.Num[Swedish.A''71(table ResSve.Sex{p_Regret__3=>"jag"++("mц╔ste"++("tyvц╓rr"++"meddela")++("er"++"att"))})]})(table ResSve.Sex{p_Regret__1=>table ResSve.Num[(table ResSve.Sex{p_Regret__3=>"vi"++("mц╔ste"++("tyvц╓rr"++"meddela")++("dig"++"att"))})Swedish.A''72]})]};"jag (mЕste tyvДrr meddela)dig att";
lin Senior:Letter.Position=\->{s=table ResSve.Num{p_Senior__0=>table ResSve.Sex{p_Senior__1=>"ц╓ldre"++"forskare"}}};"Дldre forskare";
lincat Sentence={s:(ResSve.DepNum=>(ResSve.Sex=>(ResSve.Num=>(ResSve.Sex=>Str))))}={s=table ResSve.DepNum{p_Sentence__0=>table ResSve.Sex{p_Sentence__1=>table ResSve.Num{p_Sentence__2=>table ResSve.Sex{p_Sentence__3=>str@0}}}}};"Sentence";
lin Spouse:Letter.Author=\->{n=<ResSve.depnum>;s=table ResSve.Num[(table ResSve.Sex[("din"++"hustru")("din"++"man")])(table ResSve.Sex[("era"++"hustrur")("era"++"mц╓n")])];x=<ResSve.masc>};"{ResSve.depnum}";
}
resource ResSve={flags coding=utf8;flags modulesize=n5;param DepNum=depnum|cnum ResSve.Num;
param Gen=en|ett;
param Kas=nom|acc;
param Num=sg|pl;
param Sex=masc|fem;
}
concrete French of Letter=open ResFra in{flags coding=utf8;flags modulesize=n42;flags startcat=Letter;flags lexer=textlit;flags unlexer=textlit;oper A''12:Str=table ResFra.Num["mes""nos"];
oper A''23:Str=table ResFra.Gen{p_Honour__3=>"j'ai"++("l'honneur"++"de"++("t'informer"++"que"))};
oper A''24:Str=table ResFra.Gen{p_Honour__3=>"nous"++"avons"++("l'honneur"++"de"++("vous"++"informer"++"que"))};
oper A''34:Str=table ResFra.Gen{p_ILoveYou__3=>"je"++"t'aime"};
oper A''35:Str=table ResFra.Gen{p_ILoveYou__3=>"nous"++("vous"++"aimons")};
oper A''5:Str=<ResFra.cgen<ResFra.masc>>;
oper A''51:Str=<ResFra.cgen<ResFra.fem>>;
oper A''6:Str=<ResFra.cnum<ResFra.sg>>;
oper A''65:Str=<ResFra.cnum<ResFra.pl>>;
oper A''86:Str=table ResFra.Gen[("je"++"suis"++("dц╘solц╘e"++("d'informer"++"que")))("je"++"suis"++("dц╘solц╘"++("d'informer"++"que")))];
oper A''87:Str=table ResFra.Gen[("nous"++"sommes"++("dц╘solц╘es"++("d'informer"++"que")))("nous"++"sommes"++("dц╘solц╘s"++("d'informer"++"que")))];
oper A''89:Str=table ResFra.Gen{p_Regret__3=>"je"++"suis"++("dц╘solц╘"++("d'informer"++"que"))};
oper A''90:Str=table ResFra.Gen{p_Regret__3=>"nous"++"sommes"++("dц╘solц╘s"++("d'informer"++"que"))};
oper A''92:Str=table ResFra.Gen{p_Regret__3=>"je"++"suis"++("dц╘solц╘e"++("d'informer"++"que"))};
oper A''93:Str=table ResFra.Gen{p_Regret__3=>"nous"++"sommes"++("dц╘solц╘es"++("d'informer"++"que"))};
lincat Author={g:ResFra.DepGen;n:ResFra.DepNum;s:(ResFra.Num=>(ResFra.Gen=>Str))}={g=<ResFra.depgen>;n=<ResFra.depnum>;s=table ResFra.Num{p_Author__0=>table ResFra.Gen{p_Author__1=>str@0}}};"Author";
lin BePromoted:Letter.Sentence=\Position@0->{s=table ResFra.DepNum{p_BePromoted__0=>table ResFra.DepGen{p_BePromoted__1=>table ResFra.Num[(table ResFra.Gen[("tu"++("as"++"ц╘tц╘")++("promu"++Position@0.s!<ResFra.sg>!<ResFra.masc>))("tu"++("as"++"ц╘tц╘")++("promue"++Position@0.s!<ResFra.sg>!<ResFra.fem>))])(table ResFra.Gen[("vous"++("avez"++"ц╘tц╘")++("promus"++Position@0.s!<ResFra.pl>!<ResFra.masc>))("vous"++("avez"++"ц╘tц╘")++("promues"++Position@0.s!<ResFra.pl>!<ResFra.fem>))])]}}};"(tu as ИtИ)promu Position_0";
lin ColleagueHe:Letter.Recipient=\->{g=<ResFra.masc>;n=<ResFra.sg>;s="collц╗gue"};"{ResFra.masc}";
lin ColleagueShe:Letter.Recipient=\->{g=<ResFra.fem>;n=<ResFra.sg>;s="collц╗gue"};"{ResFra.fem}";
lin ColleaguesHe:Letter.Recipient=\->{g=<ResFra.masc>;n=<ResFra.pl>;s="collц╗gues"};"{ResFra.masc}";
lin ColleaguesShe:Letter.Recipient=\->{g=<ResFra.fem>;n=<ResFra.pl>;s="collц╗gues"};"{ResFra.fem}";
lin Company:Letter.NounPhrase=\->{g=<ResFra.fem>;n=<ResFra.sg>;s="notre"++"entreprise"};"{ResFra.fem}";
lin Competitor:Letter.NounPhrase=\->{g=<ResFra.masc>;n=<ResFra.sg>;s="notre"++("pire"++"compц╘titeur")};"{ResFra.masc}";
lin DarlingHe:Letter.Recipient=\->{g=<ResFra.masc>;n=<ResFra.sg>;s="chц╘ri"};"{ResFra.masc}";
lin DarlingShe:Letter.Recipient=\->{g=<ResFra.fem>;n=<ResFra.sg>;s="chц╘rie"};"{ResFra.fem}";
lin Dean:Letter.Author=\->{g=French.A''5;n=French.A''6;s=table ResFra.Num{p_Dean__0=>table ResFra.Gen{p_Dean__1=>"le"++"doyen"}}};"{ResFra.cgen} {ResFra.masc}";
lin DearRec:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s=table ResFra.Num[(table ResFra.Gen["cher""chц╗re"]!(Recipient@0.g))(table ResFra.Gen["chers""chц╗res"]!(Recipient@0.g))]!(Recipient@0.n)++Recipient@0.s};"Recipient_0";
lincat Ending={g:ResFra.DepGen;n:ResFra.DepNum;s:(ResFra.Num=>(ResFra.Gen=>Str))}={g=<ResFra.depgen>;n=<ResFra.depnum>;s=table ResFra.Num{p_Ending__0=>table ResFra.Gen{p_Ending__1=>str@0}}};"Ending";
lin FormalEnding:Letter.Ending=\Author@0->{g=Author@0.g;n=Author@0.n;s=table ResFra.Num[(table ResFra.Gen{p_FormalEnding__1=>"avec"++(French.A''12!(table ResFra.DepNum[<ResFra.sg><ResFra.sg><ResFra.pl>]!(Author@0.n))++("salutations"++("distinguц╘es"++"&-")++Author@0.s!<ResFra.sg>!$p_FormalEnding__1))})(table ResFra.Gen{p_FormalEnding__1=>"avec"++(French.A''12!(table ResFra.DepNum[<ResFra.pl><ResFra.sg><ResFra.pl>]!(Author@0.n))++("salutations"++("distinguц╘es"++"&-")++Author@0.s!<ResFra.pl>!$p_FormalEnding__1))})]};"Author_0";
lin GoBankrupt:Letter.Sentence=\NounPhrase@0->{s=table ResFra.DepNum{p_GoBankrupt__0=>table ResFra.DepGen{p_GoBankrupt__1=>table ResFra.Num{p_GoBankrupt__2=>table ResFra.Gen{p_GoBankrupt__3=>NounPhrase@0.s++(table ResFra.Num["a""ont"]!(NounPhrase@0.n)++("fait"++"banqueroute"))}}}}};"NounPhrase_0 a fait banqueroute";
lincat Heading={g:ResFra.Gen;n:ResFra.Num;s:Str}={g=<ResFra.masc>;n=<ResFra.sg>;s=str@0};"Heading";
lin HelloRec:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s="Bonjour"++Recipient@0.s};"Recipient_0";
lin Honour:Letter.Mode=\->{s=table ResFra.DepNum[(table ResFra.DepGen{p_Honour__1=>table ResFra.Num[French.A''23 French.A''24]})(table ResFra.DepGen{p_Honour__1=>table ResFra.Num[French.A''23(table ResFra.Gen{p_Honour__3=>"j'ai"++("l'honneur"++"de"++("vous"++"informer"++"que"))})]})(table ResFra.DepGen{p_Honour__1=>table ResFra.Num[(table ResFra.Gen{p_Honour__3=>"nous"++"avons"++("l'honneur"++"de"++("t'informer"++"que"))})French.A''24]})]};"j'ai (l'honneur de)t'informer que";
lin ILoveYou:Letter.Sentence=\->{s=table ResFra.DepNum[(table ResFra.DepGen{p_ILoveYou__1=>table ResFra.Num[French.A''34 French.A''35]})(table ResFra.DepGen{p_ILoveYou__1=>table ResFra.Num[French.A''34(table ResFra.Gen{p_ILoveYou__3=>"je"++("vous"++"aime")})]})(table ResFra.DepGen{p_ILoveYou__1=>table ResFra.Num[(table ResFra.Gen{p_ILoveYou__3=>"nous"++"t'aimons"})French.A''35]})]};"je t'aime";
lin InformalEnding:Letter.Ending=\Author@0->{g=Author@0.g;n=Author@0.n;s=table ResFra.Num{p_InformalEnding__0=>table ResFra.Gen{p_InformalEnding__1=>"Amicalement"++"&-"++Author@0.s!$p_InformalEnding__0!$p_InformalEnding__1}}};"Author_0";
lin JustHello:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s="Bonjour"};"Recipient_0";
lincat Letter={s:Str}={s=str@0};"Letter";
lincat Message={s:(ResFra.DepNum=>(ResFra.DepGen=>(ResFra.Num=>(ResFra.Gen=>Str))))}={s=table ResFra.DepNum{p_Message__0=>table ResFra.DepGen{p_Message__1=>table ResFra.Num{p_Message__2=>table ResFra.Gen{p_Message__3=>str@0}}}}};"Message";
lin MkLetter:Letter.Letter=\Heading@0,Message@1,Ending@2->{s=Heading@0.s++(","++("&-"++(Message@1.s!(Ending@2.n)!(Ending@2.g)!(Heading@0.n)!(Heading@0.g)++("."++("&-"++Ending@2.s!(Heading@0.n)!(Heading@0.g))))))};"Heading_0 , &- Message_1 . &- Ending_2";
lincat Mode={s:(ResFra.DepNum=>(ResFra.DepGen=>(ResFra.Num=>(ResFra.Gen=>Str))))}={s=table ResFra.DepNum{p_Mode__0=>table ResFra.DepGen{p_Mode__1=>table ResFra.Num{p_Mode__2=>table ResFra.Gen{p_Mode__3=>str@0}}}}};"Mode";
lin ModeSent:Letter.Message=\Mode@0,Sentence@1->{s=table ResFra.DepNum[(table ResFra.DepGen[(table ResFra.Num{p_ModeSent__2=>table ResFra.Gen{p_ModeSent__3=>Mode@0.s!<ResFra.depnum>!<ResFra.depgen>!$p_ModeSent__2!$p_ModeSent__3++Sentence@1.s!<ResFra.depnum>!<ResFra.depgen>!$p_ModeSent__2!$p_ModeSent__3}})(table ResFra.Num{p_ModeSent__2=>table ResFra.Gen[(Mode@0.s!<ResFra.depnum>!French.A''5!$p_ModeSent__2!<ResFra.masc>++Sentence@1.s!<ResFra.depnum>!French.A''5!$p_ModeSent__2!<ResFra.masc>)(Mode@0.s!<ResFra.depnum>!French.A''5!$p_ModeSent__2!<ResFra.fem>++Sentence@1.s!<ResFra.depnum>!French.A''5!$p_ModeSent__2!<ResFra.fem>)]})(table ResFra.Num{p_ModeSent__2=>table ResFra.Gen[(Mode@0.s!<ResFra.depnum>!French.A''51!$p_ModeSent__2!<ResFra.masc>++Sentence@1.s!<ResFra.depnum>!French.A''51!$p_ModeSent__2!<ResFra.masc>)(Mode@0.s!<ResFra.depnum>!French.A''51!$p_ModeSent__2!<ResFra.fem>++Sentence@1.s!<ResFra.depnum>!French.A''51!$p_ModeSent__2!<ResFra.fem>)]})])(table ResFra.DepGen[(table ResFra.Num[(table ResFra.Gen{p_ModeSent__3=>Mode@0.s!French.A''6!<ResFra.depgen>!<ResFra.sg>!$p_ModeSent__3++Sentence@1.s!French.A''6!<ResFra.depgen>!<ResFra.sg>!$p_ModeSent__3})(table ResFra.Gen{p_ModeSent__3=>Mode@0.s!French.A''6!<ResFra.depgen>!<ResFra.pl>!$p_ModeSent__3++Sentence@1.s!French.A''6!<ResFra.depgen>!<ResFra.pl>!$p_ModeSent__3})])(table ResFra.Num[(table ResFra.Gen[(Mode@0.s!French.A''6!French.A''5!<ResFra.sg>!<ResFra.masc>++Sentence@1.s!French.A''6!French.A''5!<ResFra.sg>!<ResFra.masc>)(Mode@0.s!French.A''6!French.A''5!<ResFra.sg>!<ResFra.fem>++Sentence@1.s!French.A''6!French.A''5!<ResFra.sg>!<ResFra.fem>)])(table ResFra.Gen[(Mode@0.s!French.A''6!French.A''5!<ResFra.pl>!<ResFra.masc>++Sentence@1.s!French.A''6!French.A''5!<ResFra.pl>!<ResFra.masc>)(Mode@0.s!French.A''6!French.A''5!<ResFra.pl>!<ResFra.fem>++Sentence@1.s!French.A''6!French.A''5!<ResFra.pl>!<ResFra.fem>)])])(table ResFra.Num[(table ResFra.Gen[(Mode@0.s!French.A''6!French.A''51!<ResFra.sg>!<ResFra.masc>++Sentence@1.s!French.A''6!French.A''51!<ResFra.sg>!<ResFra.masc>)(Mode@0.s!French.A''6!French.A''51!<ResFra.sg>!<ResFra.fem>++Sentence@1.s!French.A''6!French.A''51!<ResFra.sg>!<ResFra.fem>)])(table ResFra.Gen[(Mode@0.s!French.A''6!French.A''51!<ResFra.pl>!<ResFra.masc>++Sentence@1.s!French.A''6!French.A''51!<ResFra.pl>!<ResFra.masc>)(Mode@0.s!French.A''6!French.A''51!<ResFra.pl>!<ResFra.fem>++Sentence@1.s!French.A''6!French.A''51!<ResFra.pl>!<ResFra.fem>)])])])(table ResFra.DepGen[(table ResFra.Num[(table ResFra.Gen{p_ModeSent__3=>Mode@0.s!French.A''65!<ResFra.depgen>!<ResFra.sg>!$p_ModeSent__3++Sentence@1.s!French.A''65!<ResFra.depgen>!<ResFra.sg>!$p_ModeSent__3})(table ResFra.Gen{p_ModeSent__3=>Mode@0.s!French.A''65!<ResFra.depgen>!<ResFra.pl>!$p_ModeSent__3++Sentence@1.s!French.A''65!<ResFra.depgen>!<ResFra.pl>!$p_ModeSent__3})])(table ResFra.Num[(table ResFra.Gen[(Mode@0.s!French.A''65!French.A''5!<ResFra.sg>!<ResFra.masc>++Sentence@1.s!French.A''65!French.A''5!<ResFra.sg>!<ResFra.masc>)(Mode@0.s!French.A''65!French.A''5!<ResFra.sg>!<ResFra.fem>++Sentence@1.s!French.A''65!French.A''5!<ResFra.sg>!<ResFra.fem>)])(table ResFra.Gen[(Mode@0.s!French.A''65!French.A''5!<ResFra.pl>!<ResFra.masc>++Sentence@1.s!French.A''65!French.A''5!<ResFra.pl>!<ResFra.masc>)(Mode@0.s!French.A''65!French.A''5!<ResFra.pl>!<ResFra.fem>++Sentence@1.s!French.A''65!French.A''5!<ResFra.pl>!<ResFra.fem>)])])(table ResFra.Num[(table ResFra.Gen[(Mode@0.s!French.A''65!French.A''51!<ResFra.sg>!<ResFra.masc>++Sentence@1.s!French.A''65!French.A''51!<ResFra.sg>!<ResFra.masc>)(Mode@0.s!French.A''65!French.A''51!<ResFra.sg>!<ResFra.fem>++Sentence@1.s!French.A''65!French.A''51!<ResFra.sg>!<ResFra.fem>)])(table ResFra.Gen[(Mode@0.s!French.A''65!French.A''51!<ResFra.pl>!<ResFra.masc>++Sentence@1.s!French.A''65!French.A''51!<ResFra.pl>!<ResFra.masc>)(Mode@0.s!French.A''65!French.A''51!<ResFra.pl>!<ResFra.fem>++Sentence@1.s!French.A''65!French.A''51!<ResFra.pl>!<ResFra.fem>)])])])]};"Mode_0 Sentence_1";
lin Mother:Letter.Author=\->{g=French.A''51;n=French.A''6;s=table ResFra.Num{p_Mother__0=>table ResFra.Gen{p_Mother__1=>"maman"}}};"{ResFra.cgen} {ResFra.fem}";
lin Name:Letter.Author=\String@0->{g=French.A''5;n=French.A''6;s=table ResFra.Num{p_Name__0=>table ResFra.Gen{p_Name__1=>String@0.s}}};"{ResFra.cgen} {ResFra.masc}";
lin NameHe:Letter.Recipient=\String@0->{g=<ResFra.masc>;n=<ResFra.sg>;s=String@0.s};"{ResFra.masc}";
lin NameShe:Letter.Recipient=\String@0->{g=<ResFra.fem>;n=<ResFra.sg>;s=String@0.s};"{ResFra.fem}";
lincat NounPhrase={g:ResFra.Gen;n:ResFra.Num;s:Str}={g=<ResFra.masc>;n=<ResFra.sg>;s=str@0};"NounPhrase";
lin OurCustomers:Letter.NounPhrase=\->{g=<ResFra.masc>;n=<ResFra.pl>;s="nos"++"clients"};"{ResFra.masc}";
lin PlainRec:Letter.Heading=\Recipient@0->{g=Recipient@0.g;n=Recipient@0.n;s=Recipient@0.s};"Recipient_0";
lin PlainSent:Letter.Message=\Sentence@0->{s=Sentence@0.s};"Sentence_0";
lincat Position={s:(ResFra.Num=>(ResFra.Gen=>Str))}={s=table ResFra.Num{p_Position__0=>table ResFra.Gen{p_Position__1=>str@0}}};"Position";
lin President:Letter.Author=\->{g=French.A''5;n=French.A''6;s=table ResFra.Num{p_President__0=>table ResFra.Gen{p_President__1=>"le"++"prц╘sident"}}};"{ResFra.cgen} {ResFra.masc}";
lin ProjectManager:Letter.Position=\->{s=table ResFra.Num[(table ResFra.Gen{p_ProjectManager__1=>"chef"++("de"++"projet")})(table ResFra.Gen{p_ProjectManager__1=>"chefs"++("de"++"projets")})]};"chef de projet";
lincat Recipient={g:ResFra.Gen;n:ResFra.Num;s:Str}={g=<ResFra.masc>;n=<ResFra.sg>;s=str@0};"Recipient";
lin Regret:Letter.Mode=\->{s=table ResFra.DepNum[(table ResFra.DepGen[(table ResFra.Num[French.A''86 French.A''87])(table ResFra.Num[French.A''89 French.A''90])(table ResFra.Num[French.A''92 French.A''93])])(table ResFra.DepGen[(table ResFra.Num{p_Regret__2=>French.A''86})(table ResFra.Num{p_Regret__2=>French.A''89})(table ResFra.Num{p_Regret__2=>French.A''92})])(table ResFra.DepGen[(table ResFra.Num{p_Regret__2=>French.A''87})(table ResFra.Num{p_Regret__2=>French.A''90})(table ResFra.Num{p_Regret__2=>French.A''93})])]};"(je suis)dИsolИe d'informer que";
lin Senior:Letter.Position=\->{s=table ResFra.Num[(table ResFra.Gen{p_Senior__1=>"responsable"++"scientifique"})(table ResFra.Gen{p_Senior__1=>"responsables"++"scientifiques"})]};"responsable scientifique";
lincat Sentence={s:(ResFra.DepNum=>(ResFra.DepGen=>(ResFra.Num=>(ResFra.Gen=>Str))))}={s=table ResFra.DepNum{p_Sentence__0=>table ResFra.DepGen{p_Sentence__1=>table ResFra.Num{p_Sentence__2=>table ResFra.Gen{p_Sentence__3=>str@0}}}}};"Sentence";
lin Spouse:Letter.Author=\->{g=<ResFra.depgen>;n=<ResFra.depnum>;s=table ResFra.Num[(table ResFra.Gen[("ta"++"femme")("ton"++"mari")])(table ResFra.Gen[("vos"++"femmes")("vos"++"maris")])]};"{ResFra.depgen}";
}
resource ResFra={flags coding=utf8;flags modulesize=n5;param DepGen=depgen|cgen ResFra.Gen;
param DepNum=depnum|cnum ResFra.Num;
param Gen=masc|fem;
param Kas=nom|acc;
param Num=sg|pl;
}
concrete English of Letter=open ResEng in{flags coding=utf8;flags modulesize=n42;flags startcat=Letter;flags lexer=textlit;flags unlexer=textlit;oper A''14:Str=table ResEng.Sex{p_Honour__3=>"I"++("have"++("the"++("honour"++("to"++("inform"++("you"++"that"))))))};
oper A''15:Str=table ResEng.Sex{p_Honour__3=>"we"++("have"++("the"++("honour"++("to"++("inform"++("you"++"that"))))))};
oper A''23:Str=table ResEng.Sex{p_ILoveYou__3=>"I"++("love"++"you")};
oper A''24:Str=table ResEng.Sex{p_ILoveYou__3=>"we"++("love"++"you")};
oper A''4:Str=<ResEng.cnum<ResEng.sg>>;
oper A''46:Str=<ResEng.cnum<ResEng.pl>>;
oper A''64:Str=table ResEng.Sex{p_Regret__3=>"I"++("am"++("sorry"++("to"++("inform"++("you"++"that")))))};
oper A''65:Str=table ResEng.Sex{p_Regret__3=>"we"++("are"++("sorry"++("to"++("inform"++("you"++"that")))))};
lincat Author={n:ResEng.DepNum;s:(ResEng.Num=>(ResEng.Sex=>Str));x:ResEng.Sex}={n=<ResEng.depnum>;s=table ResEng.Num{p_Author__0=>table ResEng.Sex{p_Author__1=>str@0}};x=<ResEng.masc>};"Author";
lin BePromoted:Letter.Sentence=\Position@0->{s=table ResEng.DepNum{p_BePromoted__0=>table ResEng.Sex{p_BePromoted__1=>table ResEng.Num{p_BePromoted__2=>table ResEng.Sex{p_BePromoted__3=>"you"++("have"++("been"++("promoted"++"to")))++Position@0.s!$p_BePromoted__2!$p_BePromoted__3}}}}};"(you have been promoted to)Position_0";
lin ColleagueHe:Letter.Recipient=\->{n=<ResEng.sg>;s="colleague";x=<ResEng.masc>};"{ResEng.sg}";
lin ColleagueShe:Letter.Recipient=\->{n=<ResEng.sg>;s="colleague";x=<ResEng.fem>};"{ResEng.sg}";
lin ColleaguesHe:Letter.Recipient=\->{n=<ResEng.pl>;s="colleagues";x=<ResEng.masc>};"{ResEng.pl}";
lin ColleaguesShe:Letter.Recipient=\->{n=<ResEng.pl>;s="colleagues";x=<ResEng.fem>};"{ResEng.pl}";
lin Company:Letter.NounPhrase=\->{n=<ResEng.sg>;s="our"++"company"};"{ResEng.sg}";
lin Competitor:Letter.NounPhrase=\->{n=<ResEng.sg>;s="our"++("worst"++"competitor")};"{ResEng.sg}";
lin DarlingHe:Letter.Recipient=\->{n=<ResEng.sg>;s="darling";x=<ResEng.masc>};"{ResEng.sg}";
lin DarlingShe:Letter.Recipient=\->{n=<ResEng.sg>;s="darling";x=<ResEng.fem>};"{ResEng.sg}";
lin Dean:Letter.Author=\->{n=English.A''4;s=table ResEng.Num{p_Dean__0=>table ResEng.Sex{p_Dean__1=>"the"++"Dean"}};x=<ResEng.masc>};"{ResEng.cnum} {ResEng.sg}";
lin DearRec:Letter.Heading=\Recipient@0->{n=Recipient@0.n;s="Dear"++Recipient@0.s;x=Recipient@0.x};"Recipient_0";
lincat Ending={n:ResEng.DepNum;s:(ResEng.Num=>(ResEng.Sex=>Str));x:ResEng.Sex}={n=<ResEng.depnum>;s=table ResEng.Num{p_Ending__0=>table ResEng.Sex{p_Ending__1=>str@0}};x=<ResEng.masc>};"Ending";
lin FormalEnding:Letter.Ending=\Author@0->{n=Author@0.n;s=table ResEng.Num{p_FormalEnding__0=>table ResEng.Sex{p_FormalEnding__1=>"Sincerely"++("yours"++"&-")++Author@0.s!$p_FormalEnding__0!$p_FormalEnding__1}};x=Author@0.x};"Author_0";
lin GoBankrupt:Letter.Sentence=\NounPhrase@0->{s=table ResEng.DepNum{p_GoBankrupt__0=>table ResEng.Sex{p_GoBankrupt__1=>table ResEng.Num{p_GoBankrupt__2=>table ResEng.Sex{p_GoBankrupt__3=>NounPhrase@0.s++(table ResEng.Num["has""have"]!(NounPhrase@0.n)++("gone"++"bankrupt"))}}}}};"NounPhrase_0 has gone bankrupt";
lincat Heading={n:ResEng.Num;s:Str;x:ResEng.Sex}={n=<ResEng.sg>;s=str@0;x=<ResEng.masc>};"Heading";
lin HelloRec:Letter.Heading=\Recipient@0->{n=Recipient@0.n;s="Hello"++Recipient@0.s;x=Recipient@0.x};"Recipient_0";
lin Honour:Letter.Mode=\->{s=table ResEng.DepNum[(table ResEng.Sex{p_Honour__1=>table ResEng.Num[English.A''14 English.A''15]})(table ResEng.Sex{p_Honour__1=>table ResEng.Num{p_Honour__2=>English.A''14}})(table ResEng.Sex{p_Honour__1=>table ResEng.Num{p_Honour__2=>English.A''15}})]};"I have the honour to inform you that";
lin ILoveYou:Letter.Sentence=\->{s=table ResEng.DepNum[(table ResEng.Sex{p_ILoveYou__1=>table ResEng.Num[English.A''23 English.A''24]})(table ResEng.Sex{p_ILoveYou__1=>table ResEng.Num{p_ILoveYou__2=>English.A''23}})(table ResEng.Sex{p_ILoveYou__1=>table ResEng.Num{p_ILoveYou__2=>English.A''24}})]};"I love you";
lin InformalEnding:Letter.Ending=\Author@0->{n=Author@0.n;s=table ResEng.Num{p_InformalEnding__0=>table ResEng.Sex{p_InformalEnding__1=>"With"++("best"++("regards"++"&-"))++Author@0.s!$p_InformalEnding__0!$p_InformalEnding__1}};x=Author@0.x};"Author_0";
lin JustHello:Letter.Heading=\Recipient@0->{n=Recipient@0.n;s="Hello";x=Recipient@0.x};"Recipient_0";
lincat Letter={s:Str}={s=str@0};"Letter";
lincat Message={s:(ResEng.DepNum=>(ResEng.Sex=>(ResEng.Num=>(ResEng.Sex=>Str))))}={s=table ResEng.DepNum{p_Message__0=>table ResEng.Sex{p_Message__1=>table ResEng.Num{p_Message__2=>table ResEng.Sex{p_Message__3=>str@0}}}}};"Message";
lin MkLetter:Letter.Letter=\Heading@0,Message@1,Ending@2->{s=Heading@0.s++(","++("&-"++(Message@1.s!(Ending@2.n)!(Ending@2.x)!(Heading@0.n)!(Heading@0.x)++("."++("&-"++Ending@2.s!(Heading@0.n)!(Heading@0.x))))))};"Heading_0 , &- Message_1 . &- Ending_2";
lincat Mode={s:(ResEng.DepNum=>(ResEng.Sex=>(ResEng.Num=>(ResEng.Sex=>Str))))}={s=table ResEng.DepNum{p_Mode__0=>table ResEng.Sex{p_Mode__1=>table ResEng.Num{p_Mode__2=>table ResEng.Sex{p_Mode__3=>str@0}}}}};"Mode";
lin ModeSent:Letter.Message=\Mode@0,Sentence@1->{s=table ResEng.DepNum[(table ResEng.Sex[(table ResEng.Num{p_ModeSent__2=>table ResEng.Sex[(Mode@0.s!<ResEng.depnum>!<ResEng.masc>!$p_ModeSent__2!<ResEng.masc>++Sentence@1.s!<ResEng.depnum>!<ResEng.masc>!$p_ModeSent__2!<ResEng.masc>)(Mode@0.s!<ResEng.depnum>!<ResEng.masc>!$p_ModeSent__2!<ResEng.fem>++Sentence@1.s!<ResEng.depnum>!<ResEng.masc>!$p_ModeSent__2!<ResEng.fem>)]})(table ResEng.Num{p_ModeSent__2=>table ResEng.Sex[(Mode@0.s!<ResEng.depnum>!<ResEng.fem>!$p_ModeSent__2!<ResEng.masc>++Sentence@1.s!<ResEng.depnum>!<ResEng.fem>!$p_ModeSent__2!<ResEng.masc>)(Mode@0.s!<ResEng.depnum>!<ResEng.fem>!$p_ModeSent__2!<ResEng.fem>++Sentence@1.s!<ResEng.depnum>!<ResEng.fem>!$p_ModeSent__2!<ResEng.fem>)]})])(table ResEng.Sex[(table ResEng.Num[(table ResEng.Sex[(Mode@0.s!English.A''4!<ResEng.masc>!<ResEng.sg>!<ResEng.masc>++Sentence@1.s!English.A''4!<ResEng.masc>!<ResEng.sg>!<ResEng.masc>)(Mode@0.s!English.A''4!<ResEng.masc>!<ResEng.sg>!<ResEng.fem>++Sentence@1.s!English.A''4!<ResEng.masc>!<ResEng.sg>!<ResEng.fem>)])(table ResEng.Sex[(Mode@0.s!English.A''4!<ResEng.masc>!<ResEng.pl>!<ResEng.masc>++Sentence@1.s!English.A''4!<ResEng.masc>!<ResEng.pl>!<ResEng.masc>)(Mode@0.s!English.A''4!<ResEng.masc>!<ResEng.pl>!<ResEng.fem>++Sentence@1.s!English.A''4!<ResEng.masc>!<ResEng.pl>!<ResEng.fem>)])])(table ResEng.Num[(table ResEng.Sex[(Mode@0.s!English.A''4!<ResEng.fem>!<ResEng.sg>!<ResEng.masc>++Sentence@1.s!English.A''4!<ResEng.fem>!<ResEng.sg>!<ResEng.masc>)(Mode@0.s!English.A''4!<ResEng.fem>!<ResEng.sg>!<ResEng.fem>++Sentence@1.s!English.A''4!<ResEng.fem>!<ResEng.sg>!<ResEng.fem>)])(table ResEng.Sex[(Mode@0.s!English.A''4!<ResEng.fem>!<ResEng.pl>!<ResEng.masc>++Sentence@1.s!English.A''4!<ResEng.fem>!<ResEng.pl>!<ResEng.masc>)(Mode@0.s!English.A''4!<ResEng.fem>!<ResEng.pl>!<ResEng.fem>++Sentence@1.s!English.A''4!<ResEng.fem>!<ResEng.pl>!<ResEng.fem>)])])])(table ResEng.Sex[(table ResEng.Num[(table ResEng.Sex[(Mode@0.s!English.A''46!<ResEng.masc>!<ResEng.sg>!<ResEng.masc>++Sentence@1.s!English.A''46!<ResEng.masc>!<ResEng.sg>!<ResEng.masc>)(Mode@0.s!English.A''46!<ResEng.masc>!<ResEng.sg>!<ResEng.fem>++Sentence@1.s!English.A''46!<ResEng.masc>!<ResEng.sg>!<ResEng.fem>)])(table ResEng.Sex[(Mode@0.s!English.A''46!<ResEng.masc>!<ResEng.pl>!<ResEng.masc>++Sentence@1.s!English.A''46!<ResEng.masc>!<ResEng.pl>!<ResEng.masc>)(Mode@0.s!English.A''46!<ResEng.masc>!<ResEng.pl>!<ResEng.fem>++Sentence@1.s!English.A''46!<ResEng.masc>!<ResEng.pl>!<ResEng.fem>)])])(table ResEng.Num[(table ResEng.Sex[(Mode@0.s!English.A''46!<ResEng.fem>!<ResEng.sg>!<ResEng.masc>++Sentence@1.s!English.A''46!<ResEng.fem>!<ResEng.sg>!<ResEng.masc>)(Mode@0.s!English.A''46!<ResEng.fem>!<ResEng.sg>!<ResEng.fem>++Sentence@1.s!English.A''46!<ResEng.fem>!<ResEng.sg>!<ResEng.fem>)])(table ResEng.Sex[(Mode@0.s!English.A''46!<ResEng.fem>!<ResEng.pl>!<ResEng.masc>++Sentence@1.s!English.A''46!<ResEng.fem>!<ResEng.pl>!<ResEng.masc>)(Mode@0.s!English.A''46!<ResEng.fem>!<ResEng.pl>!<ResEng.fem>++Sentence@1.s!English.A''46!<ResEng.fem>!<ResEng.pl>!<ResEng.fem>)])])])]};"Mode_0 Sentence_1";
lin Mother:Letter.Author=\->{n=English.A''4;s=table ResEng.Num{p_Mother__0=>table ResEng.Sex{p_Mother__1=>"Mom"}};x=<ResEng.fem>};"{ResEng.cnum} {ResEng.sg}";
lin Name:Letter.Author=\String@0->{n=English.A''4;s=table ResEng.Num{p_Name__0=>table ResEng.Sex{p_Name__1=>String@0.s}};x=<ResEng.masc>};"{ResEng.cnum} {ResEng.sg}";
lin NameHe:Letter.Recipient=\String@0->{n=<ResEng.sg>;s=String@0.s;x=<ResEng.masc>};"{ResEng.sg}";
lin NameShe:Letter.Recipient=\String@0->{n=<ResEng.sg>;s=String@0.s;x=<ResEng.fem>};"{ResEng.sg}";
lincat NounPhrase={n:ResEng.Num;s:Str}={n=<ResEng.sg>;s=str@0};"NounPhrase";
lin OurCustomers:Letter.NounPhrase=\->{n=<ResEng.pl>;s="our"++"customers"};"{ResEng.pl}";
lin PlainRec:Letter.Heading=\Recipient@0->{n=Recipient@0.n;s=Recipient@0.s;x=Recipient@0.x};"Recipient_0";
lin PlainSent:Letter.Message=\Sentence@0->{s=Sentence@0.s};"Sentence_0";
lincat Position={s:(ResEng.Num=>(ResEng.Sex=>Str))}={s=table ResEng.Num{p_Position__0=>table ResEng.Sex{p_Position__1=>str@0}}};"Position";
lin President:Letter.Author=\->{n=English.A''4;s=table ResEng.Num{p_President__0=>table ResEng.Sex{p_President__1=>"the"++"President"}};x=<ResEng.masc>};"{ResEng.cnum} {ResEng.sg}";
lin ProjectManager:Letter.Position=\->{s=table ResEng.Num[(table ResEng.Sex{p_ProjectManager__1=>"a"++("project"++"manager")})(table ResEng.Sex{p_ProjectManager__1=>"project"++"managers"})]};"a project manager";
lincat Recipient={n:ResEng.Num;s:Str;x:ResEng.Sex}={n=<ResEng.sg>;s=str@0;x=<ResEng.masc>};"Recipient";
lin Regret:Letter.Mode=\->{s=table ResEng.DepNum[(table ResEng.Sex{p_Regret__1=>table ResEng.Num[English.A''64 English.A''65]})(table ResEng.Sex{p_Regret__1=>table ResEng.Num{p_Regret__2=>English.A''64}})(table ResEng.Sex{p_Regret__1=>table ResEng.Num{p_Regret__2=>English.A''65}})]};"I am sorry to inform you that";
lin Senior:Letter.Position=\->{s=table ResEng.Num[(table ResEng.Sex{p_Senior__1=>"a"++("senior"++"fellow")})(table ResEng.Sex{p_Senior__1=>"senior"++"fellows"})]};"a senior fellow";
lincat Sentence={s:(ResEng.DepNum=>(ResEng.Sex=>(ResEng.Num=>(ResEng.Sex=>Str))))}={s=table ResEng.DepNum{p_Sentence__0=>table ResEng.Sex{p_Sentence__1=>table ResEng.Num{p_Sentence__2=>table ResEng.Sex{p_Sentence__3=>str@0}}}}};"Sentence";
lin Spouse:Letter.Author=\->{n=<ResEng.depnum>;s=table ResEng.Num[(table ResEng.Sex[("your"++"wife")("your"++"husband")])(table ResEng.Sex[("your"++"wives")("your"++"husbands")])];x=<ResEng.masc>};"{ResEng.depnum}";
}
resource ResEng={flags coding=utf8;flags modulesize=n4;param DepNum=depnum|cnum ResEng.Num;
param Kas=nom|acc;
param Num=sg|pl;
param Sex=masc|fem;
}