summaryrefslogtreecommitdiff
path: root/examples/mp3
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2008-06-25 16:54:35 +0000
committeraarne <aarne@cs.chalmers.se>2008-06-25 16:54:35 +0000
commite9e80fc389365e24d4300d7d5390c7d833a96c50 (patch)
treef0b58473adaa670bd8fc52ada419d8cad470ee03 /examples/mp3
parentb96b36f43de3e2f8b58d5f539daa6f6d47f25870 (diff)
changed names of resource-1.3; added a note on homepage on release
Diffstat (limited to 'examples/mp3')
-rw-r--r--examples/mp3/Lexicon.gf6
-rw-r--r--examples/mp3/LexiconEng.gf9
-rw-r--r--examples/mp3/LexiconFin.gf9
-rw-r--r--examples/mp3/LexiconFre.gf9
-rw-r--r--examples/mp3/LexiconGer.gf8
-rw-r--r--examples/mp3/LexiconSwe.gf9
-rw-r--r--examples/mp3/MP3.gf19
-rw-r--r--examples/mp3/MP3Eng.gf5
-rw-r--r--examples/mp3/MP3Fin.gf5
-rw-r--r--examples/mp3/MP3Fre.gf5
-rw-r--r--examples/mp3/MP3Ger.gf5
-rw-r--r--examples/mp3/MP3I.gf24
-rw-r--r--examples/mp3/MP3Swe.gf5
-rw-r--r--examples/mp3/mp3-resource.html117
-rw-r--r--examples/mp3/mp3-resource.txt90
-rw-r--r--examples/mp3/mp3.gfcm840
16 files changed, 0 insertions, 1165 deletions
diff --git a/examples/mp3/Lexicon.gf b/examples/mp3/Lexicon.gf
deleted file mode 100644
index 8d3bccaf9..000000000
--- a/examples/mp3/Lexicon.gf
+++ /dev/null
@@ -1,6 +0,0 @@
-interface Lexicon = open Structural in {
-
- oper
- play : TV ;
- song : N ;
-}
diff --git a/examples/mp3/LexiconEng.gf b/examples/mp3/LexiconEng.gf
deleted file mode 100644
index 5b5861397..000000000
--- a/examples/mp3/LexiconEng.gf
+++ /dev/null
@@ -1,9 +0,0 @@
-instance LexiconEng of Lexicon = open StructuralEng, ParadigmsEng in {
-
- oper
- play = tvDir (vReg "play") ;
- song = nReg "song" nonhuman ;
-
- yesterday = npReg "Yesterday" ;
-
-} \ No newline at end of file
diff --git a/examples/mp3/LexiconFin.gf b/examples/mp3/LexiconFin.gf
deleted file mode 100644
index 757535bbf..000000000
--- a/examples/mp3/LexiconFin.gf
+++ /dev/null
@@ -1,9 +0,0 @@
-instance LexiconFin of Lexicon = open StructuralFin, ParadigmsFin in {
-
- oper
- play = tvDir (vKattaa "soittaa" "soitan") ;
- song = nRae "kappale" "kappaleena" ;
-
- yesterday = UsePN (mkPN (nPuu "Yesterday")) ;
-
-} \ No newline at end of file
diff --git a/examples/mp3/LexiconFre.gf b/examples/mp3/LexiconFre.gf
deleted file mode 100644
index 33188ca1b..000000000
--- a/examples/mp3/LexiconFre.gf
+++ /dev/null
@@ -1,9 +0,0 @@
-instance LexiconFre of Lexicon = open StructuralFre, ParadigmsFre in {
-
- oper
- play = tvDir (vAimer "jouer") ;
- song = nReg "chanson" feminine ;
-
- yesterday = mkNP "Yesterday" masculine ;
-
-} \ No newline at end of file
diff --git a/examples/mp3/LexiconGer.gf b/examples/mp3/LexiconGer.gf
deleted file mode 100644
index 729a64ac8..000000000
--- a/examples/mp3/LexiconGer.gf
+++ /dev/null
@@ -1,8 +0,0 @@
-instance LexiconGer of Lexicon = open StructuralGer, ParadigmsGer in {
-
- oper
- play = tvDir (vWeak "spielen") ;
- song = nBuch "lied" "lieder" ;
-
- yesterday = npReg "Yesterday" ;
-} \ No newline at end of file
diff --git a/examples/mp3/LexiconSwe.gf b/examples/mp3/LexiconSwe.gf
deleted file mode 100644
index f4b17080f..000000000
--- a/examples/mp3/LexiconSwe.gf
+++ /dev/null
@@ -1,9 +0,0 @@
-instance LexiconSwe of Lexicon = open StructuralSwe, ParadigmsSwe in {
-
- oper
- play = tvDir (vKoka "spela") ;
- song = nBil "låt" ;
-
- yesterday = npReg "Yesterday" neutrum ;
-
-} \ No newline at end of file
diff --git a/examples/mp3/MP3.gf b/examples/mp3/MP3.gf
deleted file mode 100644
index cc4dd882a..000000000
--- a/examples/mp3/MP3.gf
+++ /dev/null
@@ -1,19 +0,0 @@
-abstract MP3 = {
- cat
- Move ;
- Song ;
-
- fun
- Play : Song -> Move ;
- CanPlay : Song -> Move ;
- WantPlay : Song -> Move ;
- WhichPlay : Move ;
-
- ThisSong : Song ;
- This : Song ;
-
- Yesterday : Song ;
-
----- MkSong : String -> Song ;
-
-}
diff --git a/examples/mp3/MP3Eng.gf b/examples/mp3/MP3Eng.gf
deleted file mode 100644
index 7648c1117..000000000
--- a/examples/mp3/MP3Eng.gf
+++ /dev/null
@@ -1,5 +0,0 @@
---# -path=.:resource-0.6/english:resource-0.6/abstract:prelude
-
-concrete MP3Eng of MP3 = MP3I with
- (Structural = StructuralEng),
- (Lexicon = LexiconEng) ;
diff --git a/examples/mp3/MP3Fin.gf b/examples/mp3/MP3Fin.gf
deleted file mode 100644
index 099917c18..000000000
--- a/examples/mp3/MP3Fin.gf
+++ /dev/null
@@ -1,5 +0,0 @@
---# -path=.:resource-0.6/finnish:resource-0.6/abstract:prelude
-
-concrete MP3Fin of MP3 = MP3I with
- (Structural = StructuralFin),
- (Lexicon = LexiconFin) ;
diff --git a/examples/mp3/MP3Fre.gf b/examples/mp3/MP3Fre.gf
deleted file mode 100644
index 2fcd6b8f2..000000000
--- a/examples/mp3/MP3Fre.gf
+++ /dev/null
@@ -1,5 +0,0 @@
---# -path=.:resource-0.6/french:resource-0.6/romance:resource-0.6/abstract:prelude
-
-concrete MP3Fre of MP3 = MP3I with
- (Structural = StructuralFre),
- (Lexicon = LexiconFre) ;
diff --git a/examples/mp3/MP3Ger.gf b/examples/mp3/MP3Ger.gf
deleted file mode 100644
index 5dfdfe19c..000000000
--- a/examples/mp3/MP3Ger.gf
+++ /dev/null
@@ -1,5 +0,0 @@
---# -path=.:resource-0.6/german:resource-0.6/abstract:prelude
-
-concrete MP3Ger of MP3 = MP3I with
- (Structural = StructuralGer),
- (Lexicon = LexiconGer) ;
diff --git a/examples/mp3/MP3I.gf b/examples/mp3/MP3I.gf
deleted file mode 100644
index ab8eb7915..000000000
--- a/examples/mp3/MP3I.gf
+++ /dev/null
@@ -1,24 +0,0 @@
---# -path=.:resource-0.6/english:resource-0.6/abstract:prelude
-
-incomplete concrete MP3I of MP3 = open Structural, Lexicon in {
-
- flags startcat=Move ;
-
- lincat
- Move = Phr ;
- Song = NP ;
-
- lin
- Play song = ImperOne (ImperVP (PosVG (PredTV play song))) ;
- CanPlay song = QuestPhrase (QuestVP ThouNP (PosVG (PredVV CanVV (PredTV play song)))) ;
- WantPlay song = IndicPhrase (PredVP INP (PosVG (PredVV WantVV (PredTV play song)))) ;
- WhichPlay = QuestPhrase (IntVP (NounIPOne (UseN song)) (PosVG (PredPassV (VTrans play)))) ;
-
- ThisSong = DetNP ThisDet (UseN song) ;
- This = ThisNP ;
-
- Yesterday = yesterday ;
-
----- MkSong : String -> Song ;
-
-}
diff --git a/examples/mp3/MP3Swe.gf b/examples/mp3/MP3Swe.gf
deleted file mode 100644
index 54e20171f..000000000
--- a/examples/mp3/MP3Swe.gf
+++ /dev/null
@@ -1,5 +0,0 @@
---# -path=.:resource-0.6/swedish:resource-0.6/abstract:prelude
-
-concrete MP3Swe of MP3 = MP3I with
- (Structural = StructuralSwe),
- (Lexicon = LexiconSwe) ;
diff --git a/examples/mp3/mp3-resource.html b/examples/mp3/mp3-resource.html
deleted file mode 100644
index b1125d017..000000000
--- a/examples/mp3/mp3-resource.html
+++ /dev/null
@@ -1,117 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<META NAME="generator" CONTENT="http://txt2tags.sf.net">
-<TITLE>Using the GF resource grammar library in multilingual grammars: an example</TITLE>
-</HEAD><BODY BGCOLOR="white" TEXT="black">
-<P ALIGN="center"><CENTER><H1>Using the GF resource grammar library in multilingual grammars: an example</H1>
-<FONT SIZE="4">
-<I>Author: Aarne Ranta &lt;aarne (at) cs.chalmers.se&gt;</I><BR>
-Last update: Fri Dec 16 14:30:57 2005
-</FONT></CENTER>
-
-<P></P>
-<HR NOSHADE SIZE=1>
-<P></P>
- <UL>
- <LI><A HREF="#toc1">Quick try</A>
- <LI><A HREF="#toc2">Structure</A>
- <LI><A HREF="#toc3">Resource library version</A>
- </UL>
-
-<P></P>
-<HR NOSHADE SIZE=1>
-<P></P>
-<P>
-This document describes the contents of the directory
-<A HREF="http://www.cs.chalmers.se/~aarne/GF/examples/mp3/"><CODE>GF/examples/mp3</CODE></A>.
-</P>
-<P>
-This directory contains a small example of a dialogue system
-grammar built by using the GF resource grammar library. Its sole
-purpose is to demonstrate this usage, i.e.
-</P>
- <UL>
- <LI>how the resource API is used to define concrete syntax
- <P></P>
- <LI>how to divide the grammar into modules
- </UL>
-
-<P>
-Thus it is not intended to be (even a part of) a really useful
-system.
-</P>
-<A NAME="toc1"></A>
-<H2>Quick try</H2>
-<P>
-To try out the grammar, do for example
-</P>
-<PRE>
- gf mk3.gfcm -- start GF
-
- &gt; gr | l -multi -- random generate
-
- &gt; p -tr "which song is played ?" | l -multi -- parse and translate
-
- &gt; gt -tr | l -lang=MP3Swe -- generate Swedish "treebank"
-
- &gt; si -tr | p | l -multi -- translate speech input
- [say:] I want to play Yesterday
-</PRE>
-<P>
-The last command only works if you have installed
-<A HREF="http://mi.eng.cam.ac.uk/~sjy/software.htm">ATK</A> and compiled
-<A HREF="http://www.cs.chalmers.se/Cs/Research/Language-technology/darcs/GF/doc/darcs.html">GF version 14/12/2005</A>
-or later.
-</P>
-<A NAME="toc2"></A>
-<H2>Structure</H2>
-<P>
-The directory consists of the following grammars:
-</P>
-<UL>
-<LI><A HREF="MP3.gf"><CODE>MP3.gf</CODE></A> the main abstract syntax
-<LI><A HREF="MP3I.gf"><CODE>MP3I.gf</CODE></A> functor implementation of the main abstract
-<LI><A HREF="MP3Eng.gf"><CODE>MP3Eng.gf</CODE></A> English instantiation of the functor
-<LI><A HREF="MP3Fin.gf"><CODE>MP3Fin.gf</CODE></A> Finnish instantiation of the functor (buggy)
-<LI><A HREF="MP3Fre.gf"><CODE>MP3Fre.gf</CODE></A> French instantiation of the functor
-<LI><A HREF="MP3Ger.gf"><CODE>MP3Ger.gf</CODE></A> German instantiation of the functor
-<LI><A HREF="MP3Swe.gf"><CODE>MP3Swe.gf</CODE></A> Swedish instantiation of the functor
-<LI><A HREF="Lexicon.gf"><CODE>Lexicon.gf</CODE></A> the interface on which <CODE>MP3I.gf</CODE> depends
-<LI><A HREF="LexiconEng.gf"><CODE>LexiconEng.gf</CODE></A> English instance of the interface
-<LI><A HREF="LexiconFin.gf"><CODE>LexiconFin.gf</CODE></A> Finnish instance of the interface
-<LI><A HREF="LexiconFre.gf"><CODE>LexiconFre.gf</CODE></A> French instance of the interface
-<LI><A HREF="LexiconGer.gf"><CODE>LexiconGer.gf</CODE></A> German instance of the interface
-<LI><A HREF="LexiconSwe.gf"><CODE>LexiconSwe.gf</CODE></A> Swedish instance of the interface
-</UL>
-
-<P>
-The main linguistic content is in the functor <CODE>MP3I</CODE> and the
-instances of the <CODE>Lexicon</CODE> interface.
-</P>
-<P>
-The way in which the implementation is divided to a functor
-and an interface depending on it should work as a model for
-building resource grammar applications in general.
-</P>
-<P>
-In order to compile the grammars from source, you must set the
-environment variable <CODE>GF_LIB_PATH</CODE> to point at the root
-of your GF library, e.g. in the bash shell,
-</P>
-<PRE>
- export GF_LIB_PATH=/usr/local/lib/GF/
-</PRE>
-<P></P>
-<A NAME="toc3"></A>
-<H2>Resource library version</H2>
-<P>
-The example builds on resource v. 0.6. The reason for not building
-on a later version is that German is not yet implemented for them.
-The example will probably be migrated to v. 1.0 soon. The new resource
-version will fix the bugs in the Finnish implementation.
-</P>
-
-<!-- html code generated by txt2tags 2.0 (http://txt2tags.sf.net) -->
-<!-- cmdline: txt2tags -\-toc mp3-resource.txt -->
-</BODY></HTML>
diff --git a/examples/mp3/mp3-resource.txt b/examples/mp3/mp3-resource.txt
deleted file mode 100644
index 60c39fcb7..000000000
--- a/examples/mp3/mp3-resource.txt
+++ /dev/null
@@ -1,90 +0,0 @@
-Using the GF resource grammar library in multilingual grammars: an example
-Author: Aarne Ranta <aarne (at) cs.chalmers.se>
-Last update: %%date(%c)
-
-% NOTE: this is a txt2tags file.
-% Create an html file from this file using:
-% txt2tags --toc mp3-resource.txt
-
-%!target:html
-
-
-
-This document describes the contents of the directory
-[``GF/examples/mp3`` http://www.cs.chalmers.se/~aarne/GF/examples/mp3/].
-
-This directory contains a small example of a dialogue system
-grammar built by using the GF resource grammar library. Its sole
-purpose is to demonstrate this usage, i.e.
-
- - how the resource API is used to define concrete syntax
-
- - how to divide the grammar into modules
-
-
-Thus it is not intended to be (even a part of) a really useful
-system.
-
-
-==Quick try==
-
-To try out the grammar, do for example
-```
- gf mk3.gfcm -- start GF
-
- > gr | l -multi -- random generate
-
- > p -tr "which song is played ?" | l -multi -- parse and translate
-
- > gt -tr | l -lang=MP3Swe -- generate Swedish "treebank"
-
- > si -tr | p | l -multi -- translate speech input
- [say:] I want to play Yesterday
-```
-The last command only works if you have installed the
-[ATK http://mi.eng.cam.ac.uk/~sjy/software.htm] speech recognition library
-and compiled
-[GF version 14/12/2005 http://www.cs.chalmers.se/Cs/Research/Language-technology/darcs/GF/doc/darcs.html]
-or later, with support for ATK enabled.
-
-
-==Structure==
-
-The directory consists of the following grammars:
-
-- [``MP3.gf`` MP3.gf] the main abstract syntax
-- [``MP3I.gf`` MP3I.gf] functor implementation of the main abstract
-- [``MP3Eng.gf`` MP3Eng.gf] English instantiation of the functor
-- [``MP3Fin.gf`` MP3Fin.gf] Finnish instantiation of the functor (buggy)
-- [``MP3Fre.gf`` MP3Fre.gf] French instantiation of the functor
-- [``MP3Ger.gf`` MP3Ger.gf] German instantiation of the functor
-- [``MP3Swe.gf`` MP3Swe.gf] Swedish instantiation of the functor
-- [``Lexicon.gf`` Lexicon.gf] the interface on which ``MP3I.gf`` depends
-- [``LexiconEng.gf`` LexiconEng.gf] English instance of the interface
-- [``LexiconFin.gf`` LexiconFin.gf] Finnish instance of the interface
-- [``LexiconFre.gf`` LexiconFre.gf] French instance of the interface
-- [``LexiconGer.gf`` LexiconGer.gf] German instance of the interface
-- [``LexiconSwe.gf`` LexiconSwe.gf] Swedish instance of the interface
-
-
-The main linguistic content is in the functor ``MP3I`` and the
-instances of the ``Lexicon`` interface.
-
-The way in which the implementation is divided to a functor
-and an interface depending on it should work as a model for
-building resource grammar applications in general.
-
-In order to compile the grammars from source, you must set the
-environment variable ``GF_LIB_PATH`` to point at the root
-of your GF library, e.g. in the bash shell,
-
-``` export GF_LIB_PATH=/usr/local/lib/GF/
-
-
-==Resource library version==
-
-The example builds on resource v. 0.6. The reason for not building
-on a later version is that German is not yet implemented for them.
-The example will probably be migrated to v. 1.0 soon. The new resource
-version will fix the bugs in the Finnish implementation.
-
diff --git a/examples/mp3/mp3.gfcm b/examples/mp3/mp3.gfcm
deleted file mode 100644
index 83ea7451f..000000000
--- a/examples/mp3/mp3.gfcm
+++ /dev/null
@@ -1,840 +0,0 @@
-concrete MP3Eng of MP3=open StructuralEng,LexiconEng in{flags modulesize=n9;flags startcat=Move;lin CanPlay:MP3.Move=\Song@0->{s="can"++("you"++("play"++Song@0.s!<TypesEng.AccP>))++"?";lock_Phr={}};"(can you play Song_0)?";
-lincat Move={s:Str;lock_Phr:{}}={s=str@0;lock_Phr={}};"Move";
-lin Play:MP3.Move=\Song@0->{s="play"++Song@0.s!<TypesEng.AccP>++"!";lock_Phr={}};"(play Song_0)!";
-lincat Song={s:(TypesEng.NPForm=>Str);n:TypesEng.Number;p:TypesEng.Person;lock_NP:{}}={s=table TypesEng.NPForm{(TypesEng.NomP)(TypesEng.AccP)(TypesEng.GenP)(TypesEng.GenSP)=>str@0};n=<TypesEng.Sg>;p=<TypesEng.P1>;lock_NP={}};"Song";
-lin This:MP3.Song=\->{s=table TypesEng.NPForm{(TypesEng.NomP)(TypesEng.AccP)(TypesEng.GenSP)=>"this";(TypesEng.GenP)=>"this's"};n=<TypesEng.Sg>;p=<TypesEng.P3>;lock_NP={}};"this";
-lin ThisSong:MP3.Song=\->{s=table TypesEng.NPForm{(TypesEng.NomP)(TypesEng.AccP)(TypesEng.GenSP)=>"this"++"song";(TypesEng.GenP)=>"this"++"song's"};n=<TypesEng.Sg>;p=<TypesEng.P3>;lock_NP={}};"this song";
-lin WantPlay:MP3.Move=\Song@0->{s="I"++("want"++("to"++("play"++Song@0.s!<TypesEng.AccP>)))++".";lock_Phr={}};"(I want to play Song_0).";
-lin WhichPlay:MP3.Move=\->{s="which"++"song"++("is"++"played")++"?";lock_Phr={}};"((which song)is played)?";
-lin Yesterday:MP3.Song=\->{s=table TypesEng.NPForm{(TypesEng.NomP)(TypesEng.AccP)(TypesEng.GenSP)=>"Yesterday";(TypesEng.GenP)=>"Yesterday's"};n=<TypesEng.Sg>;p=<TypesEng.P3>;lock_NP={}};"Yesterday";
-}
-resource LexiconEng=open StructuralEng,ParadigmsEng in{flags modulesize=n0;}
-resource ParadigmsEng=open Predef,Prelude,SyntaxEng,ResourceEng in{flags modulesize=n0;}
-resource ResourceEng=open Prelude,SyntaxEng in{flags modulesize=n0;}
-resource SyntaxEng=MorphoEng**open Prelude,Coordination in{flags modulesize=n85;AAdj data in TypesEng;
-AAdv data in TypesEng;
-AForm data in TypesEng;
-AccP data in TypesEng;
-AdjDegr in TypesEng;
-Adjective in TypesEng;
-param Anteriority=Simul|Anter;
-Case data in TypesEng;
-CommonNoun in TypesEng;
-Comp data in TypesEng;
-Degree data in TypesEng;
-Gen data in TypesEng;
-GenP data in TypesEng;
-GenSP data in TypesEng;
-Gender data in TypesEng;
-Hum data in TypesEng;
-Indic data in TypesEng;
-InfImp data in TypesEng;
-NPForm data in TypesEng;
-NoHum data in TypesEng;
-Nom data in TypesEng;
-NomP data in TypesEng;
-Number data in TypesEng;
-P1 data in TypesEng;
-P2 data in TypesEng;
-P3 data in TypesEng;
-PPart data in TypesEng;
-Particle in TypesEng;
-Past data in TypesEng;
-Person data in TypesEng;
-Pl data in TypesEng;
-Pos data in TypesEng;
-Pronoun in TypesEng;
-ProperName in TypesEng;
-param QuestForm=DirQ|IndirQ;
-RelPron in TypesEng;
-Sg data in TypesEng;
-Sup data in TypesEng;
-param Tense=Pres|Pas|Fut;
-VForm data in TypesEng;
-Verb in TypesEng;
-param VerbForm=VInd SyntaxEng.Tense SyntaxEng.Anteriority TypesEng.Number TypesEng.Person|VCond SyntaxEng.Anteriority|VInf SyntaxEng.Anteriority|VImp;
-VerbP3 in TypesEng;
-adjDegrIrreg in MorphoEng;
-adjDegrLong in MorphoEng;
-adjDegrReg in MorphoEng;
-artDef in MorphoEng;
-artIndef in MorphoEng;
-contractNot in MorphoEng;
-dont in MorphoEng;
-mkAdjDegrWorst in MorphoEng;
-mkAdjective in MorphoEng;
-mkNoun in MorphoEng;
-mkPronoun in MorphoEng;
-mkVerb in MorphoEng;
-mkVerbP3 in MorphoEng;
-nameReg in MorphoEng;
-nounGen in MorphoEng;
-nounReg in MorphoEng;
-nounS in MorphoEng;
-nounY in MorphoEng;
-plural in TypesEng;
-pronHe in MorphoEng;
-pronI in MorphoEng;
-pronIt in MorphoEng;
-pronShe in MorphoEng;
-pronThey in MorphoEng;
-pronWe in MorphoEng;
-pronYouPl in MorphoEng;
-pronYouSg in MorphoEng;
-regAdjective in MorphoEng;
-regVerbP3 in MorphoEng;
-relPron in MorphoEng;
-singular in TypesEng;
-toCase in TypesEng;
-toNPForm in TypesEng;
-verbBe in MorphoEng;
-verbGen in MorphoEng;
-verbNoPart in MorphoEng;
-verbP3Do in MorphoEng;
-verbP3Have in MorphoEng;
-verbP3e in MorphoEng;
-verbP3s in MorphoEng;
-verbP3y in MorphoEng;
-verbPart in MorphoEng;
-}
-resource MorphoEng=TypesEng**open Prelude,Predef in{flags modulesize=n43;AAdj data in TypesEng;
-AAdv data in TypesEng;
-AForm data in TypesEng;
-AccP data in TypesEng;
-AdjDegr in TypesEng;
-Adjective in TypesEng;
-Case data in TypesEng;
-CommonNoun in TypesEng;
-Comp data in TypesEng;
-Degree data in TypesEng;
-Gen data in TypesEng;
-GenP data in TypesEng;
-GenSP data in TypesEng;
-Gender data in TypesEng;
-Hum data in TypesEng;
-Indic data in TypesEng;
-InfImp data in TypesEng;
-NPForm data in TypesEng;
-NoHum data in TypesEng;
-Nom data in TypesEng;
-NomP data in TypesEng;
-Number data in TypesEng;
-P1 data in TypesEng;
-P2 data in TypesEng;
-P3 data in TypesEng;
-PPart data in TypesEng;
-Particle in TypesEng;
-Past data in TypesEng;
-Person data in TypesEng;
-Pl data in TypesEng;
-Pos data in TypesEng;
-Pronoun in TypesEng;
-ProperName in TypesEng;
-RelPron in TypesEng;
-Sg data in TypesEng;
-Sup data in TypesEng;
-VForm data in TypesEng;
-Verb in TypesEng;
-VerbP3 in TypesEng;
-plural in TypesEng;
-singular in TypesEng;
-toCase in TypesEng;
-toNPForm in TypesEng;
-}
-resource TypesEng=open Prelude in{flags modulesize=n8;param AForm=AAdj|AAdv;
-param Case=Nom|Gen;
-param Degree=Pos|Comp|Sup;
-param Gender=NoHum|Hum;
-param NPForm=NomP|AccP|GenP|GenSP;
-param Number=Sg|Pl;
-param Person=P1|P2|P3;
-param VForm=InfImp|Indic TypesEng.Person|Past TypesEng.Number|PPart;
-}
-concrete MP3Swe of MP3=open StructuralSwe,LexiconSwe in{flags modulesize=n9;flags startcat=Move;lin CanPlay:MP3.Move=\Song@0->{s="kan"++("du"++("spela"++Song@0.s!<TypesSwe.PAcc>))++"?";lock_Phr={}};"(kan du spela Song_0)?";
-lincat Move={s:Str;lock_Phr:{}}={s=str@0;lock_Phr={}};"Move";
-lin Play:MP3.Move=\Song@0->{s="spela"++Song@0.s!<TypesSwe.PAcc>++"!";lock_Phr={}};"(spela Song_0)!";
-lincat Song={s:(TypesSwe.NPForm=>Str);g:TypesSwe.Gender;n:TypesSwe.Number;lock_NP:{}}={s=table TypesSwe.NPForm{(TypesSwe.PNom)(TypesSwe.PAcc)(TypesSwe.PGen(TypesSwe.ASg(TypesSwe.Utr)))(TypesSwe.PGen(TypesSwe.ASg(TypesSwe.Neutr)))(TypesSwe.PGen(TypesSwe.APl))=>str@0};g=<TypesSwe.Utr>;n=<TypesSwe.Sg>;lock_NP={}};"Song";
-lin This:MP3.Song=\->{s=table TypesSwe.NPForm{(TypesSwe.PGen(TypesSwe.ASg(TypesSwe.Utr)))(TypesSwe.PGen(TypesSwe.ASg(TypesSwe.Neutr)))(TypesSwe.PGen(TypesSwe.APl))=>"det"++"här"++"s";(TypesSwe.PNom)(TypesSwe.PAcc)=>"det"++"här"};g=<TypesSwe.Neutr>;n=<TypesSwe.Sg>;lock_NP={}};"det här";
-lin ThisSong:MP3.Song=\->{s=table TypesSwe.NPForm{(TypesSwe.PNom)(TypesSwe.PAcc)=>"den"++"här"++"låten";(TypesSwe.PGen(TypesSwe.ASg(TypesSwe.Utr)))(TypesSwe.PGen(TypesSwe.ASg(TypesSwe.Neutr)))(TypesSwe.PGen(TypesSwe.APl))=>"den"++"här"++"låtens"};g=<TypesSwe.Utr>;n=<TypesSwe.Sg>;lock_NP={}};"(den här)låten";
-lin WantPlay:MP3.Move=\Song@0->{s="jag"++("vill"++("spela"++Song@0.s!<TypesSwe.PAcc>))++".";lock_Phr={}};"(jag vill spela Song_0).";
-lin WhichPlay:MP3.Move=\->{s="vilken"++"låt"++"spelas"++"?";lock_Phr={}};"((vilken låt)spelas)?";
-lin Yesterday:MP3.Song=\->{s=table TypesSwe.NPForm{(TypesSwe.PNom)(TypesSwe.PAcc)=>"Yesterday";(TypesSwe.PGen(TypesSwe.ASg(TypesSwe.Utr)))(TypesSwe.PGen(TypesSwe.ASg(TypesSwe.Neutr)))(TypesSwe.PGen(TypesSwe.APl))=>"Yesterdays"};g=<TypesSwe.Neutr>;n=<TypesSwe.Sg>;lock_NP={}};"Yesterday";
-}
-resource LexiconSwe=open StructuralSwe,ParadigmsSwe in{flags modulesize=n0;}
-resource ParadigmsSwe=open Predef,Prelude,SyntaxSwe,ResourceSwe in{flags modulesize=n0;}
-resource ResourceSwe=open Prelude,SyntaxSwe in{flags modulesize=n0;}
-resource SyntaxSwe=MorphoSwe**open Prelude,Coordination in{flags modulesize=n172;AF data in TypesSwe;
-APl data in TypesSwe;
-APron data in TypesSwe;
-ASg data in TypesSwe;
-Act data in TypesSwe;
-Adj in TypesSwe;
-AdjForm data in TypesSwe;
-AdjFormGrad data in TypesSwe;
-AdjFormPos data in TypesSwe;
-AdjFormSup data in TypesSwe;
-AdjPronForm data in TypesSwe;
-Adv in TypesSwe;
-AdvInv in TypesSwe;
-Art in TypesSwe;
-AuxInf data in TypesSwe;
-AuxPres data in TypesSwe;
-AuxPret data in TypesSwe;
-AuxSup data in TypesSwe;
-AuxVerbForm data in TypesSwe;
-AxPl data in TypesSwe;
-AxSg data in TypesSwe;
-Case data in TypesSwe;
-Cnj data in TypesSwe;
-Comp data in TypesSwe;
-Compar data in TypesSwe;
-Conjunct in TypesSwe;
-Def data in TypesSwe;
-Degree data in TypesSwe;
-Gen data in TypesSwe;
-GenNum data in TypesSwe;
-Gender data in TypesSwe;
-Imper data in TypesSwe;
-Imperat data in TypesSwe;
-Ind data in TypesSwe;
-Indef data in TypesSwe;
-Indicat data in TypesSwe;
-Inf data in TypesSwe;
-Infin in TypesSwe;
-Infinit data in TypesSwe;
-Interj in TypesSwe;
-Masc data in TypesSwe;
-Mode data in TypesSwe;
-NPForm data in TypesSwe;
-Neutr data in TypesSwe;
-NoMasc data in TypesSwe;
-Nom data in TypesSwe;
-Number data in TypesSwe;
-param Order=Main|Inv|Sub;
-P1 data in TypesSwe;
-P2 data in TypesSwe;
-P3 data in TypesSwe;
-PAcc data in TypesSwe;
-PGen data in TypesSwe;
-PNm in TypesSwe;
-PNom data in TypesSwe;
-Part in TypesSwe;
-Pass data in TypesSwe;
-Person data in TypesSwe;
-Pl data in TypesSwe;
-Pos data in TypesSwe;
-Posit data in TypesSwe;
-Prep in TypesSwe;
-Preposition in MorphoSwe;
-Pres data in TypesSwe;
-Pret data in TypesSwe;
-ProAdj in TypesSwe;
-ProPN in TypesSwe;
-PtPres data in TypesSwe;
-PtPret data in TypesSwe;
-param QuestForm=DirQ|IndirQ;
-RAcc data in MorphoSwe;
-RGen data in MorphoSwe;
-RNom data in MorphoSwe;
-RPrep data in MorphoSwe;
-RelCase data in MorphoSwe;
-param RelGender=RNoGen|RG TypesSwe.Gender;
-SF data in TypesSwe;
-Sex data in TypesSwe;
-SexNum data in TypesSwe;
-Sg data in TypesSwe;
-Species data in TypesSwe;
-param SpeciesP=IndefP|DefP TypesSwe.Species;
-Strong data in TypesSwe;
-Subjunct in TypesSwe;
-Subst in TypesSwe;
-SubstForm data in TypesSwe;
-Sup data in TypesSwe;
-SupStrong data in TypesSwe;
-SupWeak data in TypesSwe;
-Super data in TypesSwe;
-Supin data in TypesSwe;
-Utr data in TypesSwe;
-VAux in TypesSwe;
-VF data in TypesSwe;
-VFin data in TypesSwe;
-VForm data in TypesSwe;
-VI data in TypesSwe;
-VInf data in TypesSwe;
-VMode data in TypesSwe;
-VPres data in TypesSwe;
-Verb in TypesSwe;
-VerbForm data in TypesSwe;
-Verbum in TypesSwe;
-Voice data in TypesSwe;
-Weak data in TypesSwe;
-aAbstrakt in MorphoSwe;
-aFager in MorphoSwe;
-aFin in MorphoSwe;
-aGrund in MorphoSwe;
-aKorkad in MorphoSwe;
-aVaken in MorphoSwe;
-aVid in MorphoSwe;
-adverbForm in TypesSwe;
-artDef in MorphoSwe;
-artIndef in MorphoSwe;
-de_38 in MorphoSwe;
-den_39 in MorphoSwe;
-det_40 in MorphoSwe;
-du_33 in MorphoSwe;
-extVerb in TypesSwe;
-extVerbPart in TypesSwe;
-farbror_8 in MorphoSwe;
-gammal_16 in MorphoSwe;
-giva_1147 in MorphoSwe;
-gå_1174 in MorphoSwe;
-han_34 in MorphoSwe;
-hava_1198 in MorphoSwe;
-hon_35 in MorphoSwe;
-jag_32 in MorphoSwe;
-liten_1146 in MorphoSwe;
-man_1144 in MorphoSwe;
-mkVerb in MorphoSwe;
-mkVerbPart in MorphoSwe;
-mor_1 in MorphoSwe;
-ni_37 in MorphoSwe;
-pronSådan in MorphoSwe;
-pronVilken in MorphoSwe;
-relPronForms in MorphoSwe;
-sApa in MorphoSwe;
-sBil in MorphoSwe;
-sHus in MorphoSwe;
-sKam in MorphoSwe;
-sKikare in MorphoSwe;
-sLik in MorphoSwe;
-sMuseum in MorphoSwe;
-sNivå in MorphoSwe;
-sNummer in MorphoSwe;
-sNyckel in MorphoSwe;
-sPapper in MorphoSwe;
-sParti in MorphoSwe;
-sPojke in MorphoSwe;
-sProgram in MorphoSwe;
-sRike in MorphoSwe;
-sRum in MorphoSwe;
-sSak in MorphoSwe;
-sVarelse in MorphoSwe;
-stor_25 in MorphoSwe;
-ung_29 in MorphoSwe;
-vByta in MorphoSwe;
-vFinna in MorphoSwe;
-vGömma in MorphoSwe;
-vHyra in MorphoSwe;
-vLeka in MorphoSwe;
-vTala in MorphoSwe;
-vTyda in MorphoSwe;
-vTåla in MorphoSwe;
-vVända in MorphoSwe;
-vara_1200 in MorphoSwe;
-verbFinnas in MorphoSwe;
-verbHava in MorphoSwe;
-verbVara in MorphoSwe;
-vi_36 in MorphoSwe;
-}
-resource MorphoSwe=TypesSwe**open Prelude in{flags modulesize=n99;AF data in TypesSwe;
-APl data in TypesSwe;
-APron data in TypesSwe;
-ASg data in TypesSwe;
-Act data in TypesSwe;
-Adj in TypesSwe;
-AdjForm data in TypesSwe;
-AdjFormGrad data in TypesSwe;
-AdjFormPos data in TypesSwe;
-AdjFormSup data in TypesSwe;
-AdjPronForm data in TypesSwe;
-Adv in TypesSwe;
-AdvInv in TypesSwe;
-Art in TypesSwe;
-AuxInf data in TypesSwe;
-AuxPres data in TypesSwe;
-AuxPret data in TypesSwe;
-AuxSup data in TypesSwe;
-AuxVerbForm data in TypesSwe;
-AxPl data in TypesSwe;
-AxSg data in TypesSwe;
-Case data in TypesSwe;
-Cnj data in TypesSwe;
-Comp data in TypesSwe;
-Compar data in TypesSwe;
-Conjunct in TypesSwe;
-Def data in TypesSwe;
-Degree data in TypesSwe;
-Gen data in TypesSwe;
-GenNum data in TypesSwe;
-Gender data in TypesSwe;
-Imper data in TypesSwe;
-Imperat data in TypesSwe;
-Ind data in TypesSwe;
-Indef data in TypesSwe;
-Indicat data in TypesSwe;
-Inf data in TypesSwe;
-Infin in TypesSwe;
-Infinit data in TypesSwe;
-Interj in TypesSwe;
-Masc data in TypesSwe;
-Mode data in TypesSwe;
-NPForm data in TypesSwe;
-Neutr data in TypesSwe;
-NoMasc data in TypesSwe;
-Nom data in TypesSwe;
-Number data in TypesSwe;
-P1 data in TypesSwe;
-P2 data in TypesSwe;
-P3 data in TypesSwe;
-PAcc data in TypesSwe;
-PGen data in TypesSwe;
-PNm in TypesSwe;
-PNom data in TypesSwe;
-Part in TypesSwe;
-Pass data in TypesSwe;
-Person data in TypesSwe;
-Pl data in TypesSwe;
-Pos data in TypesSwe;
-Posit data in TypesSwe;
-Prep in TypesSwe;
-Pres data in TypesSwe;
-Pret data in TypesSwe;
-ProAdj in TypesSwe;
-ProPN in TypesSwe;
-PtPres data in TypesSwe;
-PtPret data in TypesSwe;
-param RelCase=RNom|RAcc|RGen|RPrep;
-SF data in TypesSwe;
-Sex data in TypesSwe;
-SexNum data in TypesSwe;
-Sg data in TypesSwe;
-Species data in TypesSwe;
-Strong data in TypesSwe;
-Subjunct in TypesSwe;
-Subst in TypesSwe;
-SubstForm data in TypesSwe;
-Sup data in TypesSwe;
-SupStrong data in TypesSwe;
-SupWeak data in TypesSwe;
-Super data in TypesSwe;
-Supin data in TypesSwe;
-Utr data in TypesSwe;
-VAux in TypesSwe;
-VF data in TypesSwe;
-VFin data in TypesSwe;
-VForm data in TypesSwe;
-VI data in TypesSwe;
-VInf data in TypesSwe;
-VMode data in TypesSwe;
-VPres data in TypesSwe;
-Verb in TypesSwe;
-VerbForm data in TypesSwe;
-Verbum in TypesSwe;
-Voice data in TypesSwe;
-Weak data in TypesSwe;
-adverbForm in TypesSwe;
-extVerb in TypesSwe;
-extVerbPart in TypesSwe;
-}
-resource TypesSwe=open Prelude in{flags modulesize=n24;param AdjForm=AF TypesSwe.AdjFormGrad TypesSwe.Case;
-param AdjFormGrad=Posit TypesSwe.AdjFormPos|Compar|Super TypesSwe.AdjFormSup;
-param AdjFormPos=Strong TypesSwe.GenNum|Weak TypesSwe.SexNum;
-param AdjFormSup=SupStrong|SupWeak;
-param AdjPronForm=APron TypesSwe.GenNum TypesSwe.Case;
-param AuxVerbForm=AuxInf|AuxPres|AuxPret|AuxSup;
-param Case=Nom|Gen;
-param Degree=Pos|Comp|Sup;
-param GenNum=ASg TypesSwe.Gender|APl;
-param Gender=Utr|Neutr;
-param Mode=Ind|Cnj;
-param NPForm=PNom|PAcc|PGen TypesSwe.GenNum;
-param Number=Sg|Pl;
-param Person=P1|P2|P3;
-param Sex=NoMasc|Masc;
-param SexNum=AxSg TypesSwe.Sex|AxPl;
-param Species=Indef|Def;
-param SubstForm=SF TypesSwe.Number TypesSwe.Species TypesSwe.Case;
-param VFin=Pres TypesSwe.Mode TypesSwe.Voice|Pret TypesSwe.Mode TypesSwe.Voice|Imper;
-param VForm=VPres TypesSwe.VMode TypesSwe.Voice;
-param VInf=Inf TypesSwe.Voice|Supin TypesSwe.Voice|PtPres TypesSwe.Case|PtPret TypesSwe.AdjFormPos TypesSwe.Case;
-param VMode=Infinit|Indicat|Imperat;
-param VerbForm=VF TypesSwe.VFin|VI TypesSwe.VInf;
-param Voice=Act|Pass;
-}
-concrete MP3Fre of MP3=open StructuralFre,LexiconFre in{flags modulesize=n9;flags startcat=Move;lin CanPlay:MP3.Move=\Song@0->{s=variants{("est-ce"++[pre"que"{"qu'"/"a""â""ā""e""ę""é""č""h""i""î""o""ô""u""û""y"}])[]}++("tu"++("peux"++table Prelude.Bool{(Prelude.True)=>Song@0.s!<TypesFre.Aton<TypesFre.Acc>>++"jouer";(Prelude.False)=>"jouer"++Song@0.s!<TypesFre.Aton<TypesFre.Acc>>}!(table Prelude.Bool{(Prelude.False)=><Prelude.False>;(Prelude.True)=><Prelude.True>}!(table TypesFre.ClitType{(TypesFre.Clit0)=><Prelude.False>;(TypesFre.Clit1)(TypesFre.Clit2)(TypesFre.Clit3)=><Prelude.True>}!(Song@0.c)))))++"?";lock_Phr={}};"((est-ce que)tu peux Song_0 jouer)?";
-lincat Move={s:Str;lock_Phr:{}}={s=str@0;lock_Phr={}};"Move";
-lin Play:MP3.Move=\Song@0->{s=table Prelude.Bool{(Prelude.True)=>Song@0.s!<TypesFre.Aton<TypesFre.Acc>>++"joue";(Prelude.False)=>"joue"++Song@0.s!<TypesFre.Aton<TypesFre.Acc>>}!(table Prelude.Bool{(Prelude.False)=><Prelude.False>;(Prelude.True)=><Prelude.True>}!(table TypesFre.ClitType{(TypesFre.Clit0)=><Prelude.False>;(TypesFre.Clit1)(TypesFre.Clit2)(TypesFre.Clit3)=><Prelude.True>}!(Song@0.c)))++"!";lock_Phr={}};"(Song_0 joue)!";
-lincat Song={s:(TypesFre.NPForm=>Str);g:TypesFre.PronGen;n:TypesFre.Number;p:TypesFre.Person;c:TypesFre.ClitType;lock_NP:{}}={s=table TypesFre.NPForm{(TypesFre.Ton(TypesFre.Nom))(TypesFre.Ton(TypesFre.Acc))(TypesFre.Ton(TypesFre.Gen))(TypesFre.Ton(TypesFre.Dat))(TypesFre.Aton(TypesFre.Nom))(TypesFre.Aton(TypesFre.Acc))(TypesFre.Aton(TypesFre.Gen))(TypesFre.Aton(TypesFre.Dat))(TypesFre.Poss(TypesFre.Sg)(TypesFre.Masc))(TypesFre.Poss(TypesFre.Sg)(TypesFre.Fem))(TypesFre.Poss(TypesFre.Pl)(TypesFre.Masc))(TypesFre.Poss(TypesFre.Pl)(TypesFre.Fem))=>str@0};g=<TypesFre.PGen<TypesFre.Masc>>;n=<TypesFre.Sg>;p=<TypesFre.P1>;c=<TypesFre.Clit0>;lock_NP={}};"Song";
-lin This:MP3.Song=\->{s=table TypesFre.NPForm{(TypesFre.Ton(TypesFre.Gen))(TypesFre.Aton(TypesFre.Gen))(TypesFre.Poss(TypesFre.Sg)(TypesFre.Masc))(TypesFre.Poss(TypesFre.Sg)(TypesFre.Fem))(TypesFre.Poss(TypesFre.Pl)(TypesFre.Masc))(TypesFre.Poss(TypesFre.Pl)(TypesFre.Fem))=>"de"++"ceci";(TypesFre.Ton(TypesFre.Dat))(TypesFre.Aton(TypesFre.Dat))=>"ā"++"ceci";(TypesFre.Ton(TypesFre.Nom))(TypesFre.Ton(TypesFre.Acc))(TypesFre.Aton(TypesFre.Nom))(TypesFre.Aton(TypesFre.Acc))=>"ceci"};g=<TypesFre.PGen<TypesFre.Masc>>;n=<TypesFre.Sg>;p=<TypesFre.P3>;c=<TypesFre.Clit0>;lock_NP={}};"ceci";
-lin ThisSong:MP3.Song=\->{s=table TypesFre.NPForm{(TypesFre.Ton(TypesFre.Nom))(TypesFre.Ton(TypesFre.Acc))(TypesFre.Aton(TypesFre.Nom))(TypesFre.Aton(TypesFre.Acc))=>"cette"++"chanson";(TypesFre.Ton(TypesFre.Dat))(TypesFre.Aton(TypesFre.Dat))=>"ā"++("cette"++"chanson");(TypesFre.Ton(TypesFre.Gen))(TypesFre.Aton(TypesFre.Gen))(TypesFre.Poss(TypesFre.Sg)(TypesFre.Masc))(TypesFre.Poss(TypesFre.Sg)(TypesFre.Fem))(TypesFre.Poss(TypesFre.Pl)(TypesFre.Masc))(TypesFre.Poss(TypesFre.Pl)(TypesFre.Fem))=>[pre"de"{"d'"/"a""â""ā""e""ę""é""č""h""i""î""o""ô""u""û""y"}]++("cette"++"chanson")};g=<TypesFre.PGen<TypesFre.Fem>>;n=<TypesFre.Sg>;p=<TypesFre.P3>;c=<TypesFre.Clit0>;lock_NP={}};"cette chanson";
-lin WantPlay:MP3.Move=\Song@0->{s=[pre"je"{"j'"/"a""â""ā""e""ę""é""č""h""i""î""o""ô""u""û""y"}]++("veux"++table Prelude.Bool{(Prelude.True)=>Song@0.s!<TypesFre.Aton<TypesFre.Acc>>++"jouer";(Prelude.False)=>"jouer"++Song@0.s!<TypesFre.Aton<TypesFre.Acc>>}!(table Prelude.Bool{(Prelude.False)=><Prelude.False>;(Prelude.True)=><Prelude.True>}!(table TypesFre.ClitType{(TypesFre.Clit0)=><Prelude.False>;(TypesFre.Clit1)(TypesFre.Clit2)(TypesFre.Clit3)=><Prelude.True>}!(Song@0.c))))++".";lock_Phr={}};"(je veux Song_0 jouer).";
-lin WhichPlay:MP3.Move=\->{s="quelle"++"chanson"++(variants{("est-ce"++"qui")[]}++("est"++"jouée"))++"?";lock_Phr={}};"((quelle chanson)(est-ce qui)est jouée)?";
-lin Yesterday:MP3.Song=\->{s=table TypesFre.NPForm{(TypesFre.Ton(TypesFre.Gen))(TypesFre.Aton(TypesFre.Gen))(TypesFre.Poss(TypesFre.Sg)(TypesFre.Masc))(TypesFre.Poss(TypesFre.Sg)(TypesFre.Fem))(TypesFre.Poss(TypesFre.Pl)(TypesFre.Masc))(TypesFre.Poss(TypesFre.Pl)(TypesFre.Fem))=>"de"++"Yesterday";(TypesFre.Ton(TypesFre.Dat))(TypesFre.Aton(TypesFre.Dat))=>"ā"++"Yesterday";(TypesFre.Ton(TypesFre.Nom))(TypesFre.Ton(TypesFre.Acc))(TypesFre.Aton(TypesFre.Nom))(TypesFre.Aton(TypesFre.Acc))=>"Yesterday"};g=<TypesFre.PGen<TypesFre.Masc>>;n=<TypesFre.Sg>;p=<TypesFre.P3>;c=<TypesFre.Clit0>;lock_NP={}};"Yesterday";
-}
-concrete MP3I of MP3={flags modulesize=n0;flags startcat=Move;}
-resource LexiconFre=open StructuralFre,ParadigmsFre in{flags modulesize=n0;}
-resource Lexicon={flags modulesize=n0;}
-resource ParadigmsFre=open Prelude,TypesFre,SyntaxFre,MorphoFre,ResourceFre in{flags modulesize=n0;}
-resource ResourceFre=open SyntaxFre,MorphoFre,Prelude in{flags modulesize=n0;}
-resource SyntaxFre=TypesFre**open Prelude,Coordination,MorphoFre in{flags modulesize=n108;AA data in TypesFre;
-AF data in TypesFre;
-AForm data in TypesFre;
-Acc data in TypesFre;
-Adj in TypesFre;
-AdjComp in TypesFre;
-Aton data in TypesFre;
-CNom in TypesFre;
-Case data in TypesFre;
-CaseA in TypesFre;
-Clit0 data in TypesFre;
-Clit1 data in TypesFre;
-Clit2 data in TypesFre;
-Clit3 data in TypesFre;
-ClitType data in TypesFre;
-Comp data in TypesFre;
-Con data in TypesFre;
-Cond data in TypesFre;
-Dat data in TypesFre;
-Degree data in TypesFre;
-Fem data in TypesFre;
-Futur data in TypesFre;
-Gen data in TypesFre;
-Gender data in TypesFre;
-Imparf data in TypesFre;
-Imper data in TypesFre;
-Ind data in TypesFre;
-Indic data in TypesFre;
-Inf data in TypesFre;
-Masc data in TypesFre;
-Mode data in TypesFre;
-NPForm data in TypesFre;
-NPFormA in TypesFre;
-Nom data in TypesFre;
-NumPersI data in TypesFre;
-Number data in TypesFre;
-P1 data in TypesFre;
-P2 data in TypesFre;
-P3 data in TypesFre;
-PGen data in TypesFre;
-PNoGen data in TypesFre;
-PPasse data in TypesFre;
-PPres data in TypesFre;
-Part data in TypesFre;
-Passe data in TypesFre;
-Person data in TypesFre;
-Pl data in TypesFre;
-PlP1 data in TypesFre;
-PlP2 data in TypesFre;
-Pos data in TypesFre;
-Poss data in TypesFre;
-Pres data in TypesFre;
-PronGen data in TypesFre;
-Pronoun in TypesFre;
-param QuestForm=DirQ|IndirQ;
-RComplex data in TypesFre;
-RG data in TypesFre;
-RNoGen data in TypesFre;
-RSimple data in TypesFre;
-RelForm data in TypesFre;
-RelFormA in TypesFre;
-RelGen data in TypesFre;
-SImparf data in TypesFre;
-SPres data in TypesFre;
-Sg data in TypesFre;
-SgP2 data in TypesFre;
-Subjo data in TypesFre;
-Sup data in TypesFre;
-TPart data in TypesFre;
-TSubj data in TypesFre;
-Temps data in TypesFre;
-Ton data in TypesFre;
-VF data in TypesFre;
-VFin data in TypesFre;
-VForm data in TypesFre;
-VImper data in TypesFre;
-VInfin data in TypesFre;
-VPart data in TypesFre;
-VerbPres in TypesFre;
-Verbum in TypesFre;
-accusative in TypesFre;
-adjCompLong in TypesFre;
-case2pform in TypesFre;
-case2pformClit in TypesFre;
-dative in TypesFre;
-elisDe in TypesFre;
-elisLa in TypesFre;
-elisLe in TypesFre;
-elisNe in TypesFre;
-elisQue in TypesFre;
-elisSi in TypesFre;
-elision in TypesFre;
-genitive in TypesFre;
-mkAdjComp in TypesFre;
-nombreVerb in TypesFre;
-nominative in TypesFre;
-pform2case in TypesFre;
-pgen2gen in TypesFre;
-plural in TypesFre;
-prepCase in TypesFre;
-prepositional in TypesFre;
-relPronForms in TypesFre;
-singular in TypesFre;
-stressed in TypesFre;
-unstressed in TypesFre;
-vImper in TypesFre;
-verbPres in TypesFre;
-voyelle in TypesFre;
-}
-resource SyntaxRomance={flags modulesize=n0;}
-resource Coordination=open Prelude in{flags modulesize=n1;param ListSize=TwoElem|ManyElem;
-}
-resource MorphoFre=open Predef,Prelude,TypesFre in{flags modulesize=n0;}
-resource Prelude=open Predef in{flags modulesize=n2;param Bool=True|False;
-param ENumber=E0|E1|E2|Emore;
-}
-resource Predef={flags modulesize=n1;param PBool=PTrue|PFalse;
-}
-resource TypesFre={flags modulesize=n18;param AForm=AF TypesFre.Gender TypesFre.Number|AA;
-param Case=Nom|Acc|Gen|Dat;
-param ClitType=Clit0|Clit1|Clit2|Clit3;
-param Degree=Pos|Comp|Sup;
-param Gender=Masc|Fem;
-param Mode=Ind|Con;
-param NPForm=Ton TypesFre.Case|Aton TypesFre.Case|Poss TypesFre.Number TypesFre.Gender;
-param NumPersI=SgP2|PlP1|PlP2;
-param Number=Sg|Pl;
-param Person=P1|P2|P3;
-param PronGen=PGen TypesFre.Gender|PNoGen;
-param RelForm=RSimple TypesFre.Case|RComplex TypesFre.Gender TypesFre.Number TypesFre.Case;
-param RelGen=RNoGen|RG TypesFre.Gender;
-param TPart=PPres|PPasse TypesFre.Gender TypesFre.Number;
-param TSubj=SPres|SImparf;
-param Temps=Pres|Imparf|Passe|Futur;
-param VF=VFin TypesFre.Mode TypesFre.Number TypesFre.Person|VImper TypesFre.NumPersI|VPart TypesFre.Gender TypesFre.Number|VInfin;
-param VForm=Inf|Indic TypesFre.Temps TypesFre.Number TypesFre.Person|Cond TypesFre.Number TypesFre.Person|Subjo TypesFre.TSubj TypesFre.Number TypesFre.Person|Imper TypesFre.NumPersI|Part TypesFre.TPart;
-}
-resource TypesRomance={flags modulesize=n0;}
-resource Resource={flags modulesize=n0;}
-concrete MP3Ger of MP3=open StructuralGer,LexiconGer in{flags modulesize=n9;flags startcat=Move;lin CanPlay:MP3.Move=\Song@0->{s="kannst"++("du"++(Song@0.s!<TypesGer.NPCase<TypesGer.Acc>>++"spielen"))++"?";lock_Phr={}};"(kannst du Song_0 spielen)?";
-lincat Move={s:Str;lock_Phr:{}}={s=str@0;lock_Phr={}};"Move";
-lin Play:MP3.Move=\Song@0->{s="spiel"++Song@0.s!<TypesGer.NPCase<TypesGer.Acc>>++"!";lock_Phr={}};"(spiel Song_0)!";
-lincat Song={s:(TypesGer.NPForm=>Str);n:TypesGer.Number;p:TypesGer.Person;pro:Prelude.Bool;lock_NP:{}}={s=table TypesGer.NPForm{(TypesGer.NPCase(TypesGer.Nom))(TypesGer.NPCase(TypesGer.Acc))(TypesGer.NPCase(TypesGer.Dat))(TypesGer.NPCase(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Gen))=>str@0};n=<TypesGer.Sg>;p=<TypesGer.P1>;pro=<Prelude.True>;lock_NP={}};"Song";
-lin This:MP3.Song=\->{s=table TypesGer.NPForm{(TypesGer.NPCase(TypesGer.Dat))=>"diesem";(TypesGer.NPCase(TypesGer.Nom))(TypesGer.NPCase(TypesGer.Acc))(TypesGer.NPCase(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Gen))=>"dieses"};n=<TypesGer.Sg>;p=<TypesGer.P3>;pro=<Prelude.False>;lock_NP={}};"dieses";
-lin ThisSong:MP3.Song=\->{s=table TypesGer.NPForm{(TypesGer.NPCase(TypesGer.Dat))=>"diesem"++"lied";(TypesGer.NPCase(TypesGer.Nom))(TypesGer.NPCase(TypesGer.Acc))=>"dieses"++"lied";(TypesGer.NPCase(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Gen))=>"dieses"++"liedes"};n=<TypesGer.Sg>;p=<TypesGer.P3>;pro=<Prelude.False>;lock_NP={}};"dieses lied";
-lin WantPlay:MP3.Move=\Song@0->{s="ich"++("will"++(Song@0.s!<TypesGer.NPCase<TypesGer.Acc>>++"spielen"))++".";lock_Phr={}};"(ich will Song_0 spielen).";
-lin WhichPlay:MP3.Move=\->{s="welches"++"lied"++("wird"++"gespielt")++"?";lock_Phr={}};"((welches lied)wird gespielt)?";
-lin Yesterday:MP3.Song=\->{s=table TypesGer.NPForm{(TypesGer.NPCase(TypesGer.Nom))(TypesGer.NPCase(TypesGer.Acc))(TypesGer.NPCase(TypesGer.Dat))=>"Yesterday";(TypesGer.NPCase(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Gen))=>"Yesterdays"};n=<TypesGer.Sg>;p=<TypesGer.P3>;pro=<Prelude.False>;lock_NP={}};"Yesterday";
-}
-abstract MP3={flags modulesize=n9;fun CanPlay:(h_:MP3.Song)->MP3.Move={};
-cat Move[]=;
-fun Play:(h_:MP3.Song)->MP3.Move={};
-cat Song[]=;
-fun This:MP3.Song={};
-fun ThisSong:MP3.Song={};
-fun WantPlay:(h_:MP3.Song)->MP3.Move={};
-fun WhichPlay:MP3.Move={};
-fun Yesterday:MP3.Song={};
-}
-resource LexiconGer=open StructuralGer,ParadigmsGer in{flags modulesize=n0;}
-resource ParadigmsGer=open Prelude,MorphoGer,SyntaxGer,ResourceGer in{flags modulesize=n0;}
-resource ResourceGer=open Prelude,SyntaxGer in{flags modulesize=n0;}
-resource SyntaxGer=MorphoGer**open Prelude,Coordination in{flags modulesize=n132;AForm data in TypesGer;
-AMod data in TypesGer;
-APred data in TypesGer;
-Acc data in TypesGer;
-AdjComp in TypesGer;
-Adjective in TypesGer;
-Adjf data in TypesGer;
-Case data in TypesGer;
-CommNoun in TypesGer;
-Comp data in TypesGer;
-Dat data in TypesGer;
-Degree data in TypesGer;
-Fem data in TypesGer;
-GPl data in TypesGer;
-GSg data in TypesGer;
-Gen data in TypesGer;
-GenNum data in TypesGer;
-Gender data in TypesGer;
-Inv data in TypesGer;
-Main data in TypesGer;
-Masc data in TypesGer;
-NPCase data in TypesGer;
-NPForm data in TypesGer;
-NPPoss data in TypesGer;
-Neut data in TypesGer;
-Nom data in TypesGer;
-Number data in TypesGer;
-Order data in TypesGer;
-P1 data in TypesGer;
-P2 data in TypesGer;
-P3 data in TypesGer;
-Particle in TypesGer;
-Person data in TypesGer;
-Pl data in TypesGer;
-Pos data in TypesGer;
-Preposition in TypesGer;
-ProPN in MorphoGer;
-param QuestForm=DirQ|IndirQ;
-RelPron in MorphoGer;
-Sg data in TypesGer;
-Strong data in TypesGer;
-Sub data in TypesGer;
-Sup data in TypesGer;
-VForm data in TypesGer;
-VImp data in TypesGer;
-VImpfInd data in TypesGer;
-VImpfSubj data in TypesGer;
-VInd data in TypesGer;
-VInf data in TypesGer;
-VPart data in TypesGer;
-VPresPart data in TypesGer;
-VSubj data in TypesGer;
-Verb in TypesGer;
-Verbum in TypesGer;
-Weak data in TypesGer;
-aMod in MorphoGer;
-adde in MorphoGer;
-adjCompReg in MorphoGer;
-adjCompReg3 in MorphoGer;
-adjE in MorphoGer;
-adjEr in MorphoGer;
-adjGen in MorphoGer;
-adjInvar in MorphoGer;
-adjReg in MorphoGer;
-artDef in MorphoGer;
-artIndef in MorphoGer;
-caselist in MorphoGer;
-declN1 in MorphoGer;
-declN1M in MorphoGer;
-declN1e in MorphoGer;
-declN1eM in MorphoGer;
-declN1in in MorphoGer;
-declN2 in MorphoGer;
-declN2i in MorphoGer;
-declN2in in MorphoGer;
-declN2n in MorphoGer;
-declN2u in MorphoGer;
-declN2uF in MorphoGer;
-declN3 in MorphoGer;
-declN3u in MorphoGer;
-declN3uS in MorphoGer;
-declNs in MorphoGer;
-gNumber in MorphoGer;
-impe in MorphoGer;
-mkAdjComp in MorphoGer;
-mkAdjective in MorphoGer;
-mkNoun in MorphoGer;
-mkNoun2es in MorphoGer;
-mkNoun2n in MorphoGer;
-mkNoun2s in MorphoGer;
-mkNoun2ses in MorphoGer;
-mkNoun3 in MorphoGer;
-mkNoun4 in MorphoGer;
-mkPronPers in MorphoGer;
-mkVerb in MorphoGer;
-mkVerbSimple in MorphoGer;
-mkVerbum in MorphoGer;
-numGenNum in MorphoGer;
-plural in TypesGer;
-pronDu in MorphoGer;
-pronEnding in MorphoGer;
-pronEr in MorphoGer;
-pronEs in MorphoGer;
-pronIch in MorphoGer;
-pronIhr in MorphoGer;
-pronSSie in MorphoGer;
-pronSie in MorphoGer;
-pronSiePl in MorphoGer;
-pronWir in MorphoGer;
-regVerb in MorphoGer;
-relPron in MorphoGer;
-singular in TypesGer;
-verbGeben in MorphoGer;
-verbHaben in MorphoGer;
-verbSein in MorphoGer;
-verbWerden in MorphoGer;
-verbumAux in MorphoGer;
-verbumDürfen in MorphoGer;
-verbumGratulieren in MorphoGer;
-verbumHaben in MorphoGer;
-verbumKönnen in MorphoGer;
-verbumMögen in MorphoGer;
-verbumMüssen in MorphoGer;
-verbumSein in MorphoGer;
-verbumSollen in MorphoGer;
-verbumStrongLaufen in MorphoGer;
-verbumStrongSehen in MorphoGer;
-verbumStrongSingen in MorphoGer;
-verbumWeak in MorphoGer;
-verbumWerden in MorphoGer;
-verbumWissen in MorphoGer;
-verbumWollen in MorphoGer;
-}
-resource MorphoGer=TypesGer**open Predef,Prelude in{flags modulesize=n54;AForm data in TypesGer;
-AMod data in TypesGer;
-APred data in TypesGer;
-Acc data in TypesGer;
-AdjComp in TypesGer;
-Adjective in TypesGer;
-Adjf data in TypesGer;
-Case data in TypesGer;
-CommNoun in TypesGer;
-Comp data in TypesGer;
-Dat data in TypesGer;
-Degree data in TypesGer;
-Fem data in TypesGer;
-GPl data in TypesGer;
-GSg data in TypesGer;
-Gen data in TypesGer;
-GenNum data in TypesGer;
-Gender data in TypesGer;
-Inv data in TypesGer;
-Main data in TypesGer;
-Masc data in TypesGer;
-NPCase data in TypesGer;
-NPForm data in TypesGer;
-NPPoss data in TypesGer;
-Neut data in TypesGer;
-Nom data in TypesGer;
-Number data in TypesGer;
-Order data in TypesGer;
-P1 data in TypesGer;
-P2 data in TypesGer;
-P3 data in TypesGer;
-Particle in TypesGer;
-Person data in TypesGer;
-Pl data in TypesGer;
-Pos data in TypesGer;
-Preposition in TypesGer;
-Sg data in TypesGer;
-Strong data in TypesGer;
-Sub data in TypesGer;
-Sup data in TypesGer;
-VForm data in TypesGer;
-VImp data in TypesGer;
-VImpfInd data in TypesGer;
-VImpfSubj data in TypesGer;
-VInd data in TypesGer;
-VInf data in TypesGer;
-VPart data in TypesGer;
-VPresPart data in TypesGer;
-VSubj data in TypesGer;
-Verb in TypesGer;
-Verbum in TypesGer;
-Weak data in TypesGer;
-plural in TypesGer;
-singular in TypesGer;
-}
-resource TypesGer=open Prelude in{flags modulesize=n11;param AForm=APred|AMod TypesGer.Adjf TypesGer.GenNum TypesGer.Case;
-param Adjf=Strong|Weak;
-param Case=Nom|Acc|Dat|Gen;
-param Degree=Pos|Comp|Sup;
-param GenNum=GSg TypesGer.Gender|GPl;
-param Gender=Masc|Fem|Neut;
-param NPForm=NPCase TypesGer.Case|NPPoss TypesGer.GenNum TypesGer.Case;
-param Number=Sg|Pl;
-param Order=Main|Inv|Sub;
-param Person=P1|P2|P3;
-param VForm=VInf|VInd TypesGer.Number TypesGer.Person|VImp TypesGer.Number|VSubj TypesGer.Number TypesGer.Person|VImpfInd TypesGer.Number TypesGer.Person|VImpfSubj TypesGer.Number TypesGer.Person|VPresPart TypesGer.AForm|VPart TypesGer.AForm;
-}